С кодирането има множество начини за решаване на проблем, ще ви покажа и обясня как реших този проблем.

Даден е масив от цели числа nums, изчислете опорния индекс на този масив.

Опорният индекс е индексът, при който сборът от всички числа точно отляво на индекса е равен на сбора от всички числа точно > отдясно на индекса.

Ако индексът е в левия край на масива, тогава лявата сума е 0, защото няма елементи отляво. Това важи и за десния край на масива.

Върнете най-левия индекс на завъртане. Ако не съществува такъв индекс, върнете -1.

Доста разбираемо. Това означава, че трябва да намерим индекса [i], където стойностите отляво и отдясно са равни и ако няма индекс, връщаме -1.

Пример 1:
Вход:
nums = [1,7,3,6,5,6]
Изход: 3
Обяснение:Опорният индекс е 3.
Сума отляво = nums[0] + nums[1] + nums[2] = 1 + 7 + 3 = 11
Дясната сума = nums[4] + nums[5] = 5 + 6 = 11

/**
 * @param {number[]} nums
 * @return {number}
 */
var pivotIndex = function(nums) {
    let totalSum = 0
    for (i=0; i < nums.length; i++){
        totalSum += nums[i]
    }
    let leftSum = 0
    for (i=0; i < nums.length; i++){
        if (leftSum == totalSum - leftSum - nums[i])
        return i
        leftSum += nums[i]
    }
    return -1
};

Нека да прегледаме този ред по ред.

Първо трябва да получим общата сума на масива. Задаваме променливата totalSum на 0 и след това преминаваме през всеки елемент в масива и добавяме тези стойности към totalSum.

След това намираме общата сума за лявата сума. Задаваме променливата leftSum равна на 0 и преминаваме през масива.

След това добавяме оператор if, за да видим дали стойността на сумата е равна на дясната страна (която ще бъде общата стойност — лявата стойност — стойността на текущото число в масива).

Ако условието е вярно, то връща индекса [i], ако е невярно, тогава връща съхранява текущото число (nums [i]) в лявата сума и след това преминава към следващото число от масива.

Накрая връщаме -1, ако цикълът завърши и не е намерен индекс на обобщена точка.