238. Product of Array Except Self
Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].
Solve it without division and in O(n).
For example, given [1,2,3,4], return [24,12,8,6].
解法
从左边第二位开始累乘,ret的结果为[1, 1, 2, 6]。从右边第二位开始累乘,结果为[24, 12, 4, 1], 然后对应位相乘为[24,12,8,6]
public class Solution {
public int[] productExceptSelf(int[] nums) {
int len = nums.length;
int[] ret = new int[len];
if (nums == null || nums.length == 0) {
return ret;
}
int prefix = 1;
for (int i = 0; i < len; i++) {
ret[i] = prefix;
prefix *= nums[i];
}
int suffix = 1;
for (int i = len - 1; i >= 0; i--) {
ret[i] *= suffix;
suffix *= nums[i];
}
return ret;
}
}

本文介绍了一种高效算法,用于求解给定数组中每个元素对应的除自身以外所有元素的乘积,且不使用除法操作。该算法通过两次遍历实现,时间复杂度为O(n)。
413

被折叠的 条评论
为什么被折叠?



