Menu
CoddyTech

Find Pivot Index

Дан массив целых чисел nums. Индексом опоры называется индекс, для которого сумма значений слева от него равна сумме значений справа от него. Значение в самом индексе опоры не относится ни к одной из сторон, а сумма значений на стороне, где их нет, равна 0.

Верните самый левый индекс опоры или -1, если такого индекса нет.

Функция

pivotIndex(nums: integer-array) → integer
numsinteger-array
массив целых чисел для балансировки
Возвращаетinteger
индекс самого левого опорного элемента или -1, если такого нет

Ограничения

  • 1 ≤ nums.length ≤ 104
  • -1000 ≤ nums[i] ≤ 1000

Примеры

Ввод
nums = [3, 1, 5, 2, 2]
Вывод
2
Пояснение
В индексе 2 левая сторона равна 3 + 1 = 4, а правая сторона равна 2 + 2 = 4. Индексы 0 и 1 не уравновешены (слева 0 против 10, слева 3 против 9), поэтому 2 — самый левый опорный индекс.

lock icon+17 скрытых тестов при отправке

challenge icon

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

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

Сбросить код
def pivotIndex(nums):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

nums = [3, 1, 5, 2, 2]

Ожидается

2