package com.apesblog.day_20221212;
/**
* @author ZhangYuShun
* @since 2022/12/12
* 寻找数组的中心索引
*
* 数组中某一个下标,左右两边的元素之后相等,该下标即为中心索引
* 思路:先统计出整个数组的总和,然后从第一个元素开始叠加
* 总和递减当前元素,叠加递增当前元素,直到两个值相等
*/
public class PivotIndex {
public static void main(String[] args) {
int[] nums = {3, 1, 1, 1, 2, 3};
int index = pivotIndex(nums);
System.out.println(index);
}
private static int pivotIndex(int[] nums) {
int sum = 0;
for (int num : nums) {
sum = sum + num;
}
int add = 0;
int sub = sum;
for (int i = 0; i < nums.length; i++) {
add = add + nums[i];
if (add == sub) {
return i;
}
sub = sub - nums[i];
}
return -1;
}
}
版权归属:
小顺
许可协议:
本文使用《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议授权
评论区