0%

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

前缀和

时间复杂度:$O(n)$

空间复杂度:$O(1)$,返回值不计入返回值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
public int[] productExceptSelf(int[] nums) {
int n = nums.length;
int[] ans = new int[n];
ans[n - 1] = 1;
for (int i = n - 2; i >= 0; --i) {
ans[i] = ans[i + 1] * nums[i + 1];
};
int pre = 1;
for (int i = 0; i < n; ++i) {
ans[i] *= pre;
pre *= nums[i];
}
return ans;
}
}