Вопрос просит меня указать входной вес, количество предметов, которые я могу сохранить, и массив весов. Он просит меня рассчитать максимальное количество веса, которое я могу нести (0-1 Рюкзак: Dynami c Программирование)
W
: Вес ввода
n
: Количество предметов
wt
: массив массива
Я получаю ошибку индекса для строки 10, когда выполняю этот код. Кажется, это очень глупая ошибка с моей стороны, и я не могу понять ее после нескольких часов выполнения тестовых случаев. Решение, которое я нашел и нашел, похоже, принимает значение t [j] [i] для каждого места, где я пишу t [i] [j]
# Uses python3
import sys
def optimal_weight(W, wt, n):
t = [[0 for x in range(n+1)] for y in range(W+1)]
for i in range(1,n+1):
for j in range(1,W+1):
if wt[i-1]<=j :
t[i][j]= max ( wt[i-1] + t[i-1][j-wt[i-1]] , t[i-1][j])
else :
t[i][j]= t[i-1][j]
return t[n][W]
if __name__ == '__main__':
arr = list(map(int, input().split()))
W = arr[0]
n = arr[1]
wt= list(map(int, input().split()))
print(optimal_weight(W, wt,n))