力扣题目:寻找数组的中心下标
题目链接: 724.寻找数组的中心下标
题目描述
代码思路
根据题目内容,维护好前后缀和,然后从左到右遍历寻找合适的下标
代码纯享版
class Solution {public int pivotIndex(int[] nums) {int sumleft = 0, sumright = 0;for(int i = 1; i < nums.length; i++){sumright += nums[i];}if(sumleft == sumright){return 0;}for(int i = 1; i < nums.length; i++){sumleft += nums[i - 1];sumright -= nums[i];if(sumleft == sumright){return i;}}return -1;}
}
代码逐行解析版
class Solution {public int pivotIndex(int[] nums) {int sumleft = 0, sumright = 0; //创建左侧和右侧的元素之和for(int i = 1; i < nums.length; i++){ //右侧sumright把除了下标为0的所有数相加sumright += nums[i]; }if(sumleft == sumright){ //左侧没有元素,和为0,如果右侧元素和也为0,则返回下标0return 0;}for(int i = 1; i < nums.length; i++){ //遍历从1开始的所有下标//每次循环,左侧加上一个元素,右侧减少一个元素sumleft += nums[i - 1]; sumright -= nums[i];if(sumleft == sumright){ //如果左右两侧相等return i; //返回下标i}}return -1; //不存在中心下标,返回-1}
}