
class Solution {
public int[] productExceptSelf(int[] nums) {
int len = nums.length;
int[] L = new int[len]; // 左边元素的乘积
int[] R = new int[len]; // 右边元素的乘积
int[] res = new int[len]; // 结果数组
// 左乘积赋值
L[0] = 1; // 第一个元素左边无元素,防止总乘积为0,因此第一个元素的左乘积置为1
for(int indexL = 1; indexL < len; indexL++){
L[indexL] = L[indexL - 1] * nums[indexL - 1];
}
// 右乘积赋值
R[len - 1] = 1; // 最后一个元素右边无元素,防止总乘积为0,因此最后一个元素的右乘积置为1
for(int indexR = len - 2; indexR >= 0; indexR--){
R[indexR] = R[indexR + 1] * nums[indexR + 1];
}
// 结果数组赋值
for(int index = 0; index < len; index++){
res[index] = L[index] * R[index];
}
return res;
}
}

这段代码实现了一个名为`productExceptSelf`的方法,它接受一个整数数组`nums`作为输入,并返回一个新的数组,其中每个元素是原数组中除当前元素外所有元素的乘积。通过分别计算左边元素的乘积`L`和右边元素的乘积`R`,然后将两者相乘得到最终结果。这种方法避免了除法操作,提高了效率。
865

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



