diff --git a/problems/0416.分割等和子集.md b/problems/0416.分割等和子集.md index bb210e29..7f6e3d5b 100644 --- a/problems/0416.分割等和子集.md +++ b/problems/0416.分割等和子集.md @@ -349,7 +349,10 @@ class Solution: dp[i][j] = dp[i - 1][j] else: # 当前数字小于等于目标和时,可以选择使用或不使用该数字 - dp[i][j] = dp[i - 1][j] or dp[i - 1][j - nums[i - 1]] + # dp[i][j] = dp[i - 1][j] or dp[i - 1][j - nums[i - 1]] + + # 当前数字小于等于目标和时,可以选择使用或不使用该数字的最大值 + dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - nums[i - 1]]) return dp[len(nums)][target_sum] @@ -371,9 +374,10 @@ class Solution: for num in nums: # 从target_sum逆序迭代到num,步长为-1 for i in range(target_sum, num - 1, -1): - dp[i] = dp[i] or dp[i - num] + dp[i] = max(dp[i], dp[i - num]) # 可以将其改成 dp[i] = dp[i] or dp[i - num] return dp[target_sum] + ```