From 1447c0c1d82f992476ff112eb94b7fc107ee9fea Mon Sep 17 00:00:00 2001 From: Lanre Adedara Date: Tue, 8 Oct 2024 07:43:55 +0100 Subject: [PATCH 1/2] feat: add swift solution 2 implementation to lcof2 problem: No.102 --- .../README.md" | 23 +++++++++++++++++++ .../Solution2.swift" | 18 +++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 "lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/Solution2.swift" diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/README.md" index 8c6e72e679a66..a6f9fd207cdd3 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/README.md" @@ -241,6 +241,29 @@ func findTargetSumWays(nums []int, target int) int { } ``` +#### Swift + +```swift +class Solution { + func findTargetSumWays(_ nums: [Int], _ target: Int) -> Int { + let s = nums.reduce(0, +) + if s - target < 0 || (s - target) % 2 != 0 { + return 0 + } + let target = (s - target) / 2 + var dp = [Int](repeating: 0, count: target + 1) + dp[0] = 1 + + for num in nums { + for j in stride(from: target, through: num, by: -1) { + dp[j] += dp[j - num] + } + } + return dp[target] + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/Solution2.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/Solution2.swift" new file mode 100644 index 0000000000000..399bae61ffbb6 --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/Solution2.swift" @@ -0,0 +1,18 @@ +class Solution { + func findTargetSumWays(_ nums: [Int], _ target: Int) -> Int { + let s = nums.reduce(0, +) + if s - target < 0 || (s - target) % 2 != 0 { + return 0 + } + let target = (s - target) / 2 + var dp = [Int](repeating: 0, count: target + 1) + dp[0] = 1 + + for num in nums { + for j in stride(from: target, through: num, by: -1) { + dp[j] += dp[j - num] + } + } + return dp[target] + } +} \ No newline at end of file From 8ee0f80d2943f3364c796f7051cd443900eb9812 Mon Sep 17 00:00:00 2001 From: klever34 Date: Tue, 8 Oct 2024 07:08:13 +0000 Subject: [PATCH 2/2] style: format code and docs with prettier --- .../README.md" | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/README.md" index a6f9fd207cdd3..e36e94e76dd4e 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 102. \345\212\240\345\207\217\347\232\204\347\233\256\346\240\207\345\200\274/README.md" @@ -253,7 +253,7 @@ class Solution { let target = (s - target) / 2 var dp = [Int](repeating: 0, count: target + 1) dp[0] = 1 - + for num in nums { for j in stride(from: target, through: num, by: -1) { dp[j] += dp[j - num]