知识点
前缀和
思路
从左到右遍历,找到第一个左右两边的质量相等的位置,计算左右两边的质量可以计算前缀和优化每次计算到
时间复杂度为
AC code (C++)
#include <numeric> class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型vector * @return int整型 */ int pivotIndex(vector<int>& nums) { int n = nums.size(); int sum = accumulate(nums.begin(), nums.end(), 0); int last = 0; for (int i = 0; i < n; i ++) { int right = sum - nums[i] - last; if (last == right) return i; last += nums[i]; } return -1; } };