Получен массив целых чисел nums
Вычислите индекс поворота этого массива.
Индекс поворота – это индекс, в котором сумма всех чисел слева от индекса точно равна сумме всех чисел справа от индекса.
Если индекс находится на левом краю массива, то левая сумма равна 0, потому что слева нет элементов. Это также относится к правому краю массива.
Верните крайний левый индекс поворота. Если такого индекса не существует, верните значение -1.
Входные данные: nums = [1,7,3,6,5,6]
Результат: 3
Пояснение:
Индекс поворота равен 3.
Cумма слева = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11
Сумма справа = nums[4] + nums[5] = 5 + 6 = 11
Входные данные: nums = [1,2,3]
Результат: -1
Пояснение: Нет индекса, который удовлетворял бы условиям в постановке задачи.
Входные данные: nums = [2,1,-1]
Результат: 0
Пояснение:
Индекс поворота равен 0.
Cумма слева = 0 (нет элементов слева от индекса 0)
Сумма справа = nums[1] + nums[2] = 1 + -1 = 0
class Solution {
public:
int pivotIndex(vector<int>& nums) {
int sum = 0, sum2 = 0, len = nums.size();
for(int i = 0; i < len; i++) {
sum += nums[i];
}
for(int i = 0; i < len; i++) {
if(sum - nums[i] == 2*sum2) {
return i;
}
sum2 += nums[i];
}
return -1;
}
};