leetcode724

使用数学方法:

假设左边的所有数加起来的和是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);

 

posted @ 2023-05-21 19:48  iu本u  阅读(11)  评论(0)    收藏  举报