婚纱摄影网站建设,手机怎么自己做软件,专业手机网站建设公司排名,网站建设实训 课程标准给你一个整数数组 nums #xff0c;请计算数组的 中心下标 。数组 中心下标 是数组的一个下标#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端#xff0c;那么左侧数之和视为 0 #xff0c;因为在下标的左侧不存在元素。这一点对于…给你一个整数数组 nums 请计算数组的 中心下标 。数组 中心下标 是数组的一个下标其左侧所有元素相加的和等于右侧所有元素相加的和。如果中心下标位于数组最左端那么左侧数之和视为 0 因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。如果数组有多个中心下标应该返回 最靠近左边 的那一个。如果数组不存在中心下标返回 -1 。 示例 1输入nums  [1, 7, 3, 6, 5, 6]输出3解释中心下标是 3 。左侧数之和 sum  nums[0]  nums[1]  nums[2]  1  7  3  11 右侧数之和 sum  nums[4]  nums[5]  5  6  11 二者相等。示例 2输入nums  [1, 2, 3]输出-1解释数组中不存在满足此条件的中心下标。示例 3输入nums  [2, 1, -1]输出0解释中心下标是 0 。左侧数之和 sum  0 下标 0 左侧不存在元素右侧数之和 sum  nums[1]  nums[2]  1  -1  0 。 提示1  nums.length  104-1000  nums[i]  1000724. 寻找数组的中心下标 - 力扣Leetcode思路定义 preSum 为数组 nums 的前缀和preSum[ i ]  nums[ 0 ]  ...  nums[ i ]得到 前缀和数组后遍历 preSum 数组返回以 下标 i 的左侧数与右侧数之和相等时的下标 cclass Solution {
public:int pivotIndex(vectorint nums) {vectorint preSum(nums.size(), 0);vectorint tarMap;for(int i0; inums.size(); i) {if( i 0) {preSum[i]  nums[i];} else {preSum[i]  nums[i]  preSum[i-1];}}int result  -1;for(int i0; inums.size(); i) {if(i  0) {if(preSum[nums.size()-1] - preSum[0]  0) {result  0;break;}} else if(i  nums.size()-1) {if(preSum[nums.size()-2]  0) {result  nums.size()-1;break;}} else {if(preSum[i-1]  preSum[nums.size()-1]-preSum[i]) {result  i;break;}}}return result;}
};