一、知识点:
遍历、数组
二、文字分析:
- 计算数组的总和sum。同时初始化leftSum为0。
- 遍历数组,对于每个位置i,判断leftSum是否等于sum减去当前位置的重量和右侧草堆的总重量。如果相等,则返回当前位置i作为平衡点。
- 更新leftSum,将其加上当前位置的重量。
- 遍历结束后仍未找到平衡点,则返回-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;
}
}

京公网安备 11010502036488号