Skip to content

Commit e828d56

Browse files
committedJun 29, 2024
Update 416. 分割等和子集.md
1 parent ed62a18 commit e828d56

File tree

1 file changed

+37
-1
lines changed

1 file changed

+37
-1
lines changed
 

‎Dynamic Programming/416. 分割等和子集.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,40 @@ class Solution {
6060
return dp[n - 1][target];
6161
}
6262
}
63-
```
63+
```
64+
65+
66+
67+
Go 语言:
68+
69+
```go
70+
func canPartition(nums []int) bool {
71+
n, sum := len(nums), 0
72+
for _, value := range(nums) {
73+
sum += value
74+
}
75+
if sum % 2 != 0 || n == 1 {
76+
return false
77+
}
78+
target := sum / 2
79+
dp := make([][]bool, n)
80+
for i := range dp {
81+
dp[i] = make([]bool, target + 1)
82+
dp[i][0] = true
83+
}
84+
if nums[0] <= target {
85+
dp[0][nums[0]] = true
86+
}
87+
for i := 1; i < n; i++ {
88+
for j := 1; j <= target; j++ {
89+
if j > nums[i] {
90+
dp[i][j] = dp[i - 1][j] || dp[i - 1][j - nums[i]]
91+
} else {
92+
dp[i][j] = dp[i - 1][j]
93+
}
94+
}
95+
}
96+
return dp[n - 1][target]
97+
}
98+
```
99+

0 commit comments

Comments
 (0)