leetcode 刷题笔记 寻找数组的中心索引 二分法查找

题目

 解题思路:

已存在的等式:

leftSum + nums[i] + rightSum = sum

存在中心索引即:

leftSum = rightSum

得出:

2leftSum = sum - nums[i]

查询过程:

循环查询,先将左边元素相加,再进行【2leftSum = sum - nums[i]】判断,如果符合返回中心索引,不符合,则将nums[i]与左边元素相加,继续循环判断,直到找到中心索引,否则返回-1

class Solution {
    public int pivotIndex(int[] nums) {
        int sum = 0;
        int leftSum = 0;
        for(int x : nums) {
            sum += x;
        }
        for(int i = 0; i < nums.length; i++) {
            if(2*leftSum == sum - nums[i]) {
                return i;
            }
            leftSum += nums[i];
        }
        return -1;
    }
}

原文地址:https://www.cnblogs.com/littlebob/p/13447881.html