Menu
CoddyTech

Rod Cutting Problem

Você tem uma haste de comprimento n, em que n = prices.length. Um pedaço de comprimento k é vendido por prices[k-1]. Você pode cortar a haste em pedaços de comprimentos inteiros, quantos quiser, ou vendê-la inteira. Retorne o maior valor que você pode ganhar vendendo toda a haste.

Função

cutRod(prices: integer-array) → integer
pricesinteger-array
prices[k-1] é o preço de uma peça de comprimento k; a barra tem comprimento prices.length
Retornainteger
o máximo de dinheiro que a vara inteira pode ganhar

Restrições

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

Exemplos

Entrada
prices = [2, 5, 7, 8]
Saída
10
Explicação
Dois pedaços de comprimento 2 são vendidos por 5 + 5 = 10. Vender a barra inteira rende 8, e um pedaço de comprimento 1 mais um pedaço de comprimento 3 rendem 2 + 7 = 9.
challenge icon

Para ir além

E se você puder cortar a haste no máximo m vezes? O que cada entrada da tabela precisa saber nesse caso?

Redefinir código
def cutRod(prices):
    # Escreva o código aqui

Teste #1

Teste #2

Teste #3

Argumento

prices = [2, 5, 7, 8]

Saída Esperada

10