Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e8a10ab

Browse files
Merge pull request youngyangyang04#2857 from realtmxi/master
[Fix][DP][Target Sum] python 2D version solution
2 parents 0d48886 + 3ce8028 commit e8a10ab

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

‎problems/0494.目标和.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -670,18 +670,26 @@ class Solution:
670670

671671
# 创建二维动态规划数组,行表示选取的元素数量,列表示累加和
672672
dp = [[0] * (target_sum + 1) for _ in range(len(nums) + 1)]
673+
dp = [[0] * (target_sum + 1) for _ in range(len(nums))]
673674

674675
# 初始化状态
675676
dp[0][0] = 1
677+
if nums[0] <= target_sum:
678+
dp[0][nums[0]] = 1
679+
numZero = 0
680+
for i in range(len(nums)):
681+
if nums[i] == 0:
682+
numZero += 1
683+
dp[i][0] = int(math.pow(2, numZero))
676684

677685
# 动态规划过程
678-
for i in range(1, len(nums)+1):
686+
for i in range(1, len(nums)):
679687
for j in range(target_sum + 1):
680688
dp[i][j] = dp[i - 1][j] # 不选取当前元素
681689
if j >= nums[i - 1]:
682-
dp[i][j] += dp[i - 1][j - nums[i-1]] # 选取当前元素
690+
dp[i][j] += dp[i - 1][j - nums[i]] # 选取当前元素
683691

684-
return dp[len(nums)][target_sum] # 返回达到目标和的方案数
692+
return dp[len(nums)-1][target_sum] # 返回达到目标和的方案数
685693

686694

687695
```

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /