一、知识点:

遍历、数组

二、文字分析:

  1. 计算数组的总和sum。同时初始化leftSum为0。
  2. 遍历数组,对于每个位置i,判断leftSum是否等于sum减去当前位置的重量和右侧草堆的总重量。如果相等,则返回当前位置i作为平衡点。
  3. 更新leftSum,将其加上当前位置的重量。
  4. 遍历结束后仍未找到平衡点,则返回-1。

时间复杂度为O(n),空间复杂度为O(1)。

三、编程语言:

java

四、正确代码:

import java.util.*;

public class Solution {
    public int pivotIndex(int[] nums) {
        int sum = 0;
        int leftSum = 0;

        for (int num : nums) {
            sum += num;
        }

        for (int i = 0; i < nums.length; i++) {
            if (leftSum == sum - nums[i] - leftSum) {
                return i;
            }
            leftSum += nums[i];
        }

        return -1;
    }
}