From 5fe38660fb557bdd25c6145feb7602b9c82e2c37 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Wed, 29 May 2024 09:36:55 +0100 Subject: [PATCH] feat: add swift implementation to lcof problem: No.62 (#2954) --- lcof/面试题62. 圆圈中最后剩下的数字/README.md | 18 ++++++++++++++++++ .../Solution.swift | 13 +++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 lcof/面试题62. 圆圈中最后剩下的数字/Solution.swift diff --git a/lcof/面试题62. 圆圈中最后剩下的数字/README.md b/lcof/面试题62. 圆圈中最后剩下的数字/README.md index 0f0b6c9a46..66fe688f2f 100644 --- a/lcof/面试题62. 圆圈中最后剩下的数字/README.md +++ b/lcof/面试题62. 圆圈中最后剩下的数字/README.md @@ -161,6 +161,24 @@ public class Solution { } ``` +#### Swift + +```swift +class Solution { + func lastRemaining(_ n: Int, _ m: Int) -> Int { + return f(n, m) + } + + private func f(_ n: Int, _ m: Int) -> Int { + if n == 1 { + return 0 + } + let x = f(n - 1, m) + return (m + x) % n + } +} +``` + diff --git a/lcof/面试题62. 圆圈中最后剩下的数字/Solution.swift b/lcof/面试题62. 圆圈中最后剩下的数字/Solution.swift new file mode 100644 index 0000000000..4ba243f5db --- /dev/null +++ b/lcof/面试题62. 圆圈中最后剩下的数字/Solution.swift @@ -0,0 +1,13 @@ +class Solution { + func lastRemaining(_ n: Int, _ m: Int) -> Int { + return f(n, m) + } + + private func f(_ n: Int, _ m: Int) -> Int { + if n == 1 { + return 0 + } + let x = f(n - 1, m) + return (m + x) % n + } +} \ No newline at end of file