724 寻找数组的中心索引
程序员文章站
2022-07-13 17:31:32
...
原题链接:https://leetcode-cn.com/problems/find-pivot-index/
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
题目:给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。
从数组的第一个数开始将每一个数都看作是中心索引,将它左右两边的数字之和加起来进行对比,出现两者相等时,输出该数的角标即可,如果一直到最后一个数都没有出现两边相等的情况,输出为-1即可
class Solution {
public int pivotIndex(int[] nums) {
int sum=0;
for(int num:nums){
sum+=num;
}
int leftsum=0;
int rightsum=0;
for(int i=0;i<nums.length;i++){
if(i==0){
leftsum=0;
}else{
leftsum+=nums[i-1];
}
rightsum=sum-nums[i]-leftsum;
if(rightsum==leftsum){
return i;
}
}
return -1;
}
}
上一篇: Google C++编程风格指南
下一篇: 探索数组与字符串