238、除自身以外数组的乘积(中等)

238、除自身以外数组的乘积(中等)_第1张图片

class Solution {
    public int[] productExceptSelf(int[] nums) {
        int length = nums.length;

        int[] L = new int[length];  //存放当前元素左边所有元素的乘积

        int[] R = new int[length];  //存放当前元素右边所有元素的乘积

        int[] arr = new int[length];    //存放除除当前元素外其余所有元素的乘积

        L[0] = 1; //对于下标为0的元素,其左边没有元素

        R[length - 1] = 1;  //对于最后一个元素,其右边没有元素

        for (int i = 1; i < length; i++) {
            L[i] = nums[i - 1] * L[i - 1];

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

        }
        //遍历数组
        for (int i = 0; i < length; i++) {
            arr[i] = L[i] * R[i];
        }
        return arr;
    }
}

在这里插入图片描述在这里插入图片描述在这里插入图片描述

你可能感兴趣的:(LeetCode)