一、知识点:
遍历、数组
二、文字分析:
- 计算数组的总和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; } }