1、由于这里需要枚举连续区间的元素和,所以我们可以先进行前缀和。
然后逐个区间去判断左右两边是够相等。
class Solution {
public:
int findMiddleIndex(vector<int>& nums) {
int thesize=nums.size();
for(int i=1;i<thesize;++i)
{
nums[i]+=nums[i-1];
}
int sum1=0,sum2=nums[thesize-1]-nums[0];
int i=1;
while(sum1!=sum2&&i<thesize)
{
sum1=nums[i-1];
sum2=nums[thesize-1]-nums[i];
i++;
}
if(sum1==sum2) return i-1;
else return -1;
}
};