剑指offer_构建乘积数组

2019-04-06  本文已影响0人  zhouwaiqiang

题目描述

给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]A[1]...A[i-1]A[i+1]...A[n-1]。不能使用除法。

解题思路

解析步骤图片

图1初始化 图2左边乘积 图3右边乘积

java源代码

class Solution {
    public int[] productExceptSelf(int[] nums) {
        int[] result = new int[nums.length];
        result[0] = 1;
        int length = nums.length;
        for (int i = 1; i < length; i++) {
            result[i] = result[i-1] * nums[i-1];
        }
        int right = 1;
        for (int i = length-1; i >= 0; i--) {
            result[i] *= right;
            right *= nums[i];
        }
        return result;
    }
}

参考链接

https://leetcode.com/problems/product-of-array-except-self/discuss/65622/simple-java-solution-in-on-without-extra-space/254542

上一篇下一篇

猜你喜欢

热点阅读