У меня есть скрипт с результатом, должно быть минимальное количество списков в одном списке.У меня есть некоторый список данных, и элементы этого списка должны быть отсортированы: если элемент меньше B, поместите его в список sol и отвлекайте элемент от B, иначе поместите его в следующий список sol списков.Это похоже на проблему с упаковкой мусорного ведра.Но у меня есть MemoryError в этом случае.
B = 60
data = [35,21,40,12,24]
max = [B]
sol = [[]]
temp = []
for item in data:
for j,free in enumerate(max):
if free >= item:
max[j] -= (item)
sol[j].append(item)
print(max)
print(sol)
break
else:
sol.append([item])
max.append(B-item)
solved = len(sol)
print(solved)
print(sol)
Вывод будет таким:
3 [[35,21], [40,12], [24]]
Ошибка произошла в строке после else :.Я ценю любую помощь или совет.Спасибо!