使用数学方法:
假设左边的所有数加起来的和是sum,total为数组所有元素加起来的和,当i满足中心下标的条件时,即:
sum=total-sum-nums[i];
2*sum+nums[i]=total;
当中心下标是首位时,即左边sum为0;当中心下标是尾位时,右边total-sum-nums[i]为0;
for(int i=0;i<n;++i){ if(2*sum+nums[i]==total) return i; sum+=nums[i]; } return -1;
算数组的所有元素的总和使用accumulate(计算开始,范围结束,累积初始值)
accumulate(nums.begin(),nums.end(),0);
标签:leetcode724,下标,nums,sum,accumulate,total From: https://www.cnblogs.com/wangkaixin-yy/p/17419054.html