238. 除自身以外数组的乘积 - 力扣(LeetCode)
java
class Solution {
/**
2024.6.17
思路还是比较巧妙,遍历元素2遍,从左往右,算每个元素左边的乘积,不断累乘,直接赋值;
再从右往左,右边元素乘积再乘以上一遍左边元素乘积,就得到结果了
*/
public int[] productExceptSelf(int[] nums) {
int[] res=new int[nums.length];
int leftN=1;
int rightN=1;
for(int i=0;i<nums.length;i++){
res[i]=leftN;
// 从左往右,第一遍一直累乘
leftN*=nums[i];
}
for(int i=nums.length-1;i>=0;i--){
res[i]=res[i]*rightN;
rightN*=nums[i];
}
return res;
}
}