-7
我对python比较新。当我尝试执行下面的代码时,我收到了这个错误。我不明白这个错误。Python:IndexError:列表索引超出范围
def coinChange(S,m,n):
dp = [[0 for x in range(m)] for x in range(n+1)]
for i in range(m):
dp[0][i] = 1
for i in range(1,n+1):
for j in range(m):
if i >= S[j]:
dp[i][j] = dp[i-1][j] + dp[i][i-S[j]]
else:
dp[i][j] = dp[i-1][j]
return dp[i][j]
S = [1,3,5]
m = len(S)
n = 11
print(coinChange(S,m,n))
This is the error I'm getting:
Traceback (most recent call last):
File "C:\Users\SaiV\CoinChange.py", line 24, in <module>
print(coinChange(S,m,n))
File "C:\Users\SaiV\CoinChange.py", line 13, in coinChange
dp[i][j] = dp[i-1][j] + dp[i][i-S[j]]
IndexError: list index out of range
代码应该做什么?给定值的预期输出是多少?你正在尝试在其边界外的列表上进行迭代。 – CristiFati
当'i = 4'和'j = 0'出现问题时。 'dp [i] [i - S [j]]'转换为'dp [4] [3]',第二个索引在它的间隔之外(0,1,2)。 – CristiFati