Find Pivot Index

Given an array of integers nums, write a method that returns the
"pivot" index of this array.

暴力解法

说明

便利整个数组, 计算所有的i的左右

复杂度

时间O(n^2) 空间O(1)

指针法

说明

维持一个指针, 两个number left and right, 指针移动时候动态改变 left和right的值, 当left=right时候返回

复杂度

时间O(n) 空间O(1)

class Solution {
    public int pivotIndex(int[] nums) {
        int size = nums.length;
        int left = 0;
        int right = 0;
        for (int i =0; i < size; i++) {
            right+= nums[i];
        }
        for (int i = 0; i < size; i++) {
            right = right - nums[i];
            if (left == right) {
                return i;
            }
            left += nums[i];
        }
        return -1;
    }
}


lpy1990
26 声望10 粉丝