Menu
CoddyTech

Burst Balloons

Se te da una fila de globos como nums, donde nums[i] es el número del globo i. Los revientas todos, uno a la vez, en cualquier orden. Reventar un globo te da left × nums[i] × right monedas, donde left y right son los números de sus vecinos actuales, los globos más cercanos que aún permanecen en la fila a cada lado. Si falta un vecino, cuenta como 1. Después de reventar un globo, sus dos vecinos pasan a ser adyacentes. Devuelve la mayor cantidad de monedas que puedas obtener.

Función

maxCoins(nums: integer-array) → integer
numsinteger-array
los números de los globos, de izquierda a derecha
Devuelveinteger
la mayor cantidad de monedas que puedes conseguir al reventar todos los globos

Restricciones

  • 1 ≤ nums.length ≤ 300
  • 0 ≤ nums[i] ≤ 100
  • La respuesta es menor que 3 × 108, así que cabe en un entero con signo de 32 bits.

Ejemplos

Entrada
nums = [2, 4, 3]
Salida
33
Explicación
Descompón el 4 para obtener 2 × 4 × 3 = 24. El 2, ahora junto al 3, suma 1 × 2 × 3 = 6, y el 3 suma 3: 33 en total.
challenge icon

Para ir más allá

¿También puedes devolver un orden de explosión que consiga la mayor cantidad de monedas?

Restablecer código
def maxCoins(nums):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumento

nums = [2, 4, 3]

Salida Esperada

33