Menu
CoddyTech

Rod Cutting Problem

Masz pręt o długości n, gdzie n = prices.length. Kawałek o długości k można sprzedać za prices[k-1]. Możesz pociąć pręt na dowolną liczbę kawałków o całkowitych długościach albo sprzedać go w całości. Zwróć maksymalną kwotę, jaką możesz zarobić, sprzedając cały pręt.

Funkcja

cutRod(prices: integer-array) → integer
pricesinteger-array
prices[k-1] to cena kawałka o długości k; pręt ma długość prices.length
Zwracainteger
najwięcej pieniędzy, jakie może zarobić cała wędka

Ograniczenia

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

Przykłady

Wejście
prices = [2, 5, 7, 8]
Wyjście
10
Wyjaśnienie
Dwa kawałki o długości 2 sprzedają się za 5 + 5 = 10. Sprzedaż całego pręta przynosi 8, a kawałek o długości 1 i kawałek o długości 3 przynoszą 2 + 7 = 9.
challenge icon

Pytanie dodatkowe

Co jeśli możesz przeciąć pręt co najwyżej m razy? Co w takim razie musi uwzględniać każdy wpis w tabeli?

Zresetuj kod
def cutRod(prices):
    # Napisz kod tutaj

Test #1

Test #2

Test #3

Argument

prices = [2, 5, 7, 8]

Oczekiwany wynik

10