【发布时间】:2021-12-03 09:27:07
【问题描述】:
N = 3
sum1 = 4
rows, cols = (N+1, sum1+1)
dp = [[-1 for i in range(rows)] for j in range(cols)]
for i in range(0, cols):
dp[0][i] = False
for i in range(0, rows):
dp[i][0] = True
我不知道为什么我会得到这个代码的列表索引超出范围异常,唯一一次它没有显示错误是当我将行“dp[0][i] 编辑为 dp[0 ][i-1]" 目的是使矩阵 dp 大小为 3*4,第一列完全为真,第 0 行完全为假,但在 0,0 处为真
【问题讨论】:
-
为什么你认为你可以在
list的len(cols)中索引到cols?合法的list索引从0到len(thelist) - 1,而你在每个range中的+ 1意味着你超越了一个。 -
"我不知道为什么我会得到一个超出范围异常的列表索引" 用您自己的话来说,您认为在
dp[0][i] = False中使用i的确切值是有意义的? (列出所有这些,不要列出任何其他内容。)用你自己的话来说,你认为for i in range(0, cols+1):会设置哪些i值? (列出所有这些,不要列出任何其他内容。)现在,测试您认为的情况。 -
@ShadowRanger 谢谢你,我刚刚注意到我发布了错误的代码,你能看看编辑,让我知道可能是什么原因吗?谢谢!