724. 寻找数组的中心下标

724. 寻找数组的中心下标

解题思路

  • 计算数组的前缀和与后缀和
  • 类似238. 除自身以外数组的乘积
  • 设置两个数组L R
  • L计算数组的每一个元素的前缀和 R存储数组每一个元素的后缀和
  • 最后循环遍历数组 比较前后缀是否相等
class Solution {
    public int pivotIndex(int[] nums) {
        // 计算数组的前缀和与后缀和
        // 类似238. 除自身以外数组的乘积
        int[] L = new int[nums.length];
        int[] R = new int[nums.length];

        L[0] = 0;
        R[nums.length - 1] = 0;

        // 计算每一个元素的前缀和
        for(int i = 1; i < nums.length; i++){
            L[i] = L[i - 1] + nums[i - 1];
        }

        for(int j= nums.length -2; j >= 0; j--){
            R[j] = R[j + 1] + nums[j + 1];
        }

        // 寻找前缀和与后缀和相等的位置
        for(int i = 0; i < nums.length; i++){
            if(L[i] == R[i]){
                return i;
            }
        }

        return -1;
    }
}

你可能感兴趣的:(#,Leetcode,算法,java,数据结构)