Я бы посоветовал строить ваше мышление вот так. Начните разбивать проблему на более мелкие части. Что делать, если ваша сумка выдерживает вес 2 кг?
Для лучшего понимания я изменяю значения. Итак, предположим, что у вас есть 3 типа моркови
let carrotTypes = [{
price: 50,
kg: 1
},
{
price: 100,
kg: 2
},
{
price: 80,
kg: 3
}
];
Случайные маленькие числа, чтобы вы могли почувствовать это, и ваша сумка может вместить 3 кг.
Теперь приступим к этой задаче, предполагая Максимальный вес, который может выдержать сумка, равен 0, каков будет ответ, а затем увеличивайте максимальный вес один за другим. Кроме того, что, если у вас есть только 1 тип моркови, а затем увеличьте количество видов моркови. не. Итак, если вы решите выбрать (только если вы можете, например, CarrotTypeWeight
CarrotTypePrice + Answer (WeightBag может удерживать - CarrotTypeWeight) -> перемещение влево в таблице
Если вы выберите не выбирать
Ответ (WeightBag может удерживать, если у вас нет этого типа) -> перемещение вверх по таблице
Надеюсь, вы сможете это визуализировать. Матрица последних чисел [n-1] [n-1] будет вашим ответом.