Menu
CoddyTech

Rod Cutting Problem

Hai un'asta di lunghezza n, dove n = prices.length. Un pezzo di lunghezza k si vende a prices[k-1]. Puoi tagliare l'asta in pezzi di lunghezze intere, quanti ne vuoi, oppure venderla in un unico pezzo. Restituisci la somma massima che puoi guadagnare vendendola tutta.

Funzione

cutRod(prices: integer-array) → integer
pricesinteger-array
prices[k-1] è il prezzo di un pezzo di lunghezza k; la barra è lunga prices.length
Restituisceinteger
il massimo denaro che l’intera canna può guadagnare

Vincoli

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

Esempi

Input
prices = [2, 5, 7, 8]
Output
10
Spiegazione
Due pezzi di lunghezza 2 si vendono a 5 + 5 = 10. Vendere l’asta intera frutta 8, mentre un pezzo di lunghezza 1 più un pezzo di lunghezza 3 fruttano 2 + 7 = 9.
challenge icon

Per approfondire

Che cosa succede se puoi tagliare l’asta al massimo m volte? Che cosa deve sapere allora ogni voce della tabella?

Ripristina il codice
def cutRod(prices):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomento

prices = [2, 5, 7, 8]

Output atteso

10