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..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" @@ -144,6 +144,23 @@ function countBits(n: number): number[] { } ``` +#### Swift + +```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 + } + 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..a02245ad85ff0 --- /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,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 + } +}