
数组中某一个下标,左右两边的元素之和相等,该下标为中心索引。
思路一:
1、先统计出整个数组的和,然后从第一个元素开始叠加
2、叠加递增当前元素,总和递减当前元素,直到两个值相等
思路二:
1、先统计出整个数组的和,然后从第一个元素开始叠加
2、叠加的值*2 等于 (数组和-当前元素的值),则当前元素的下标就是中心索引
public class ArrayCenterIndex {public static void main(String[] args) {System.out.println(pivotIndex2(new int[] {1,0,0,1}));}private static int pivotIndex1(int[] ints) {int sum = Arrays.stream(ints).sum();int total = 0;for (int i = 0; i < ints.length; i++) {total += ints[i];if (total == sum) {return i;}sum = sum - ints[i];}return -1;}private static int pivotIndex2(int[] ints) {int sum = Arrays.stream(ints).sum();int total = 0;for (int i = 0; i < ints.length; i++) {if (total*2 == sum - ints[i]) {return i;}total += ints[i];}return -1;}}
