一、题目
二、代码
class Solution
{
public:
int pivotIndex(vector<int>& nums)
{
int i,j;
int return_int=-1;
vector<int> left_begin_sum(nums.size(),0);
vector<int> right_begin_sum(nums.size(),0);
if(nums.size()==1&&nums[0]==0) return 0;
left_begin_sum[0]=nums[0];
right_begin_sum[nums.size()-1]=nums[nums.size()-1];
for(i=1;i<nums.size();i++) left_begin_sum[i]=left_begin_sum[i-1]+nums[i];
for(i=nums.size()-2;i>=0;i--) right_begin_sum[i]=right_begin_sum[i+1]+nums[i];
std::cout<<" 左和 "<<std::endl;
for(i=0;i<nums.size();i++) std::cout<<" "<<left_begin_sum[i];
std::cout<<std::endl;
std::cout<<" 右和 "<<std::endl;
for(i=0;i<nums.size();i++) std::cout<<" "<<right_begin_sum[i];
std::cout<<std::endl;
for(i=1;i<nums.size()-1;i++) //判断逻辑
{
if(left_begin_sum[i-1]==right_begin_sum[i+1])
{
return_int=i;
break;
}
}
if(nums.size()>=2&&right_begin_sum[1]==0) return_int=0;
if(nums.size()>=2&&left_begin_sum[nums.size()-2]==0&&return_int==-1) return_int=nums.size()-1;
return return_int;
}
};