Menu
CoddyTech

Burst Balloons

Дан ряд воздушных шаров в виде nums, где nums[i] — число на шаре i. Нужно лопнуть все шары по одному в любом порядке. За лопнувший шар начисляется left × nums[i] × right монет, где left и right — числа на его текущих соседях, ближайших шарах с каждой стороны, которые всё ещё находятся в ряду. Если соседа нет, его значение считается равным 1. После того как шар лопается, два его соседа становятся соседними. Верните максимальное количество монет, которое можно собрать.

Функция

maxCoins(nums: integer-array) → integer
numsinteger-array
числа на шариках, слева направо
Возвращаетinteger
максимальное количество монет, которое можно собрать, лопнув все воздушные шарики

Ограничения

  • 1 ≤ nums.length ≤ 300
  • 0 ≤ nums[i] ≤ 100
  • Ответ меньше 3 × 108, поэтому он помещается в 32-битное целое число со знаком.

Примеры

Ввод
nums = [2, 4, 3]
Вывод
33
Пояснение
Разбейте 4 на 2 × 4 × 3 = 24. 2, теперь стоящая рядом с 3, дает 1 × 2 × 3 = 6, а 3 дает 3: всего 33.
challenge icon

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

Можешь также вернуть один порядок взрывания, который приносит больше всего монет?

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

Тест #1

Тест #2

Тест #3

Аргумент

nums = [2, 4, 3]

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

33