-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]'に変換され、2番目のインデックスはその区間(0,1,2)の外側にあります。 – CristiFati