From 136dddef4169108d03c6a4a94fbb117df81178f3 Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Thu, 30 May 2024 08:36:17 +0100 Subject: [PATCH 1/3] Swift implementation for LCOF2 003 --- .../README.md" | 14 ++++++++++++++ .../Solution.swift" | 9 +++++++++ 2 files changed, 23 insertions(+) create mode 100644 "lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/Solution.swift" diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/README.md" index 502146f5e392d..eb876583fee92 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/README.md" @@ -144,6 +144,20 @@ function countBits(n: number): number[] { } ``` +#### Swift + +```swift +class Solution { + func countBits(_ n: Int) -> [Int] { + var f = [Int](repeating: 0, count: n + 1) + for i in 1...n { + f[i] = f[i & (i - 1)] + 1 + } + return f + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/Solution.swift" new file mode 100644 index 0000000000000..0cac396c287d0 --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/Solution.swift" @@ -0,0 +1,9 @@ +class Solution { + func countBits(_ n: Int) -> [Int] { + var f = [Int](repeating: 0, count: n + 1) + for i in 1...n { + f[i] = f[i & (i - 1)] + 1 + } + return f + } +} \ No newline at end of file From 08a49aeeea92d25e6e0f0f0f57cdb212be5efa1f Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Thu, 30 May 2024 17:07:27 +0800 Subject: [PATCH 2/3] Update README.md --- .../README.md" | 3 +++ 1 file changed, 3 insertions(+) diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/README.md" index eb876583fee92..6ec922f891898 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/README.md" @@ -149,6 +149,9 @@ function countBits(n: number): number[] { ```swift class Solution { func countBits(_ n: Int) -> [Int] { + if n == 0 { + return [0] + } var f = [Int](repeating: 0, count: n + 1) for i in 1...n { f[i] = f[i & (i - 1)] + 1 From 19843ae9e9b944fefa551ca28446b75a0333a2f5 Mon Sep 17 00:00:00 2001 From: Libin YANG Date: Thu, 30 May 2024 17:07:45 +0800 Subject: [PATCH 3/3] Update Solution.swift --- .../Solution.swift" | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/Solution.swift" index 0cac396c287d0..a02245ad85ff0 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/Solution.swift" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 003. \345\211\215 n \344\270\252\346\225\260\345\255\227\344\272\214\350\277\233\345\210\266\344\270\255 1 \347\232\204\344\270\252\346\225\260/Solution.swift" @@ -1,9 +1,12 @@ class Solution { func countBits(_ n: Int) -> [Int] { + if n == 0 { + return [0] + } var f = [Int](repeating: 0, count: n + 1) for i in 1...n { f[i] = f[i & (i - 1)] + 1 } return f } -} \ No newline at end of file +}