最近在学python,在刷题的时候遇到一道动态规划题——背包问题,有一些代码看不懂。
dp = [[0]*(n+1) for _ in range(m+1)]
for i in range(1,m+1):
for j in range(1,n+1):
if j-w[i]>=0:
dp[i][j] = max(dp[i-1][j], dp[i-1][j-w[i]]+v[i])
else:
dp[i][j] = dp[i-1][j]
return dp[m][n]
附完整问题截图:
想问问这些代码是什么意思?尤其是第一行,没见过这种写法,有两个地方看不懂——"[0]*(n+1)"和for后面的"_"。
还有,第四行为什么可以直接把w[j]写进来,前面的代码里也没定义过。
提前谢谢解答。