Menu
CoddyTech

Rod Cutting Problem

У вас есть стержень длины n, где n = prices.length. Кусок длины k можно продать за prices[k-1]. Вы можете разрезать стержень на любое количество кусков целой длины или продать его целиком. Верните максимальную сумму, которую можно выручить, продав весь стержень.

Функция

cutRod(prices: integer-array) → integer
pricesinteger-array
prices[k-1] — это цена куска длиной k; длина стержня равна prices.length
Возвращаетinteger
максимальная сумма, которую может принести весь стержень

Ограничения

  • 1 ≤ prices.length ≤ 1000
  • 1 ≤ prices[i] ≤ 105

Примеры

Ввод
prices = [2, 5, 7, 8]
Вывод
10
Пояснение
Два куска длиной 2 продаются за 5 + 5 = 10. Продажа целого стержня приносит 8, а кусок длиной 1 и кусок длиной 3 приносят 2 + 7 = 9.
challenge icon

Дополнительный вопрос

Что, если ты можешь разрезать стержень не более m раз? Что тогда нужно знать о каждой ячейке таблицы?

Сбросить код
def cutRod(prices):
    # Напишите код здесь

Тест #1

Тест #2

Тест #3

Аргумент

prices = [2, 5, 7, 8]

Ожидаемый вывод

10