LeetCode75-238-Product-of-Array-Except-Self

🧠 思路总结

直觉上直接用除法: answer[i] = nums[0]*…*nums[n−1] / nums[i]
但是题目不允许用除法,但是上面的式子化简可以得到是:
nums[i]左边的所有数字相乘之后的结果再乘nums[i]右边的所有数字相乘之后的结果即是答案。
​

❗ 易错点 / 小坑

  • 不需要给前后缀的结果单独开出来两个array,只需要开一个answer array之后更新prefix和suffix就行

✅ 代码(Java)

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

LeetCode75-238-Product-of-Array-Except-Self
https://powersixxx.github.io/leetcode-blog/2026/01/31/LeetCode75-238-Product-of-Array-Except-Self/
作者
Baowen Liu
发布于
2026年1月31日
许可协议