跳至主要內容

238_除自身以外数组的乘积

T4mako算法数组前缀和小于 1 分钟

238_除自身以外数组的乘积

中等

题目描述open in new window

原数组: [1 2 3 4]
左部分的乘积: 1 1 12 123
右部分的乘积: 2
34 34 4 1
结果: 1234 134 124 1231

建立两个左右数组,通过两次for遍历得出结果

class Solution {
    public int[] productExceptSelf(int[] nums) {
        int len = nums.length;
        // 左右数组
        int[] left = new int[len];
        int[] right = new int[len];
        int[] res = new int[len];
        left[0] = 1;
        right[len - 1] = 1;
        // 计算左右数组对应的值
        for (int i = 1 ; i < len; i++) {
            left[i] = left[i - 1] * nums[i - 1];
            right[len -1 - i] = right[len - i] * nums[len - i];
        }
        // 相乘为结果
        for (int i = 0; i < len; i++) {
            res[i] = left[i] * right[i];
        }
        return res;
    }
}
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.15.5