公司建设网站属于什么科目,建筑工程网络进度谋划智能编制调控系统,承接各类网站建设,车载cms是什么意思给你一个整数数组 nums #xff0c;请计算数组的 中心下标 。
数组 中心下标 是数组的一个下标#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。
如果中心下标位于数组最左端#xff0c;那么左侧数之和视为 0 #xff0c;因为在下标的左侧不存在元素。这一点…给你一个整数数组 nums 请计算数组的 中心下标 。
数组 中心下标 是数组的一个下标其左侧所有元素相加的和等于右侧所有元素相加的和。
如果中心下标位于数组最左端那么左侧数之和视为 0 因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。
如果数组有多个中心下标应该返回 最靠近左边 的那一个。如果数组不存在中心下标返回 -1
优化后
class Solution {public int pivotIndex(int[] nums) {int sum 0;for(int i 0;inums.length;i){sum nums[i];}int sum_right sum;for(int j 0;jnums.length;j){sum_right sum_right - nums[j];if((sum-nums[j])sum_right*2){//如果j是中心点那么左边和等于右边和那么总和sum-nums[j]是sum_right的2倍return j;}}return -1;}
}或者这样写
class Solution {public int pivotIndex(int[] nums) {int sum 0;for(int i 0;inums.length;i){sum nums[i];}int sum_right sum;int sum_left 0;for(int j 0;jnums.length;j){sum_right sum_right - nums[j];if(sum_leftsum_right){return j;}sum_left nums[j];}return -1;}
}优化前
class Solution {public int pivotIndex(int[] nums) {for(int i 0;inums.length;i){int sumL 0,sumR 0;for(int j 0;ji;j){sumL sumL nums[j];//左边的和}for(int k nums.length-1;ki;k--){sumR sumR nums[k];//右边的和}if(sumLsumR){return i;}}return -1;}
}时间复杂度On^2