238. 除自身以外数组的乘积
解题思路
- 前缀与后缀的思路
- 对于给定索引i,将它左边的所有数字乘积乘以右边所有数字的乘积
- 初始化两个数组L R
- 计算L[i] = L[i - 1] * nums[i - 1] 也就是左侧所有数字的乘积
- 计算R[i] = R[i + 1] * nums[i + 1] 也就是右侧所有数字的成绩
- 计算L[I] * R[i]
class Solution {
public int[] productExceptSelf(int[] nums) {
int[] L = new int[nums.length];
int[] R = new int[nums.length];
int[] ans = new int[nums.length];
L[0] = 1;
for(int i = 1; i < nums.length; i++){
L[i] = L[i - 1] * nums[i - 1];
}
R[nums.length - 1] = 1;
for(int j = nums.length - 2; j >= 0; j--){
R[j] = R[j + 1] * nums[j + 1];
}
// 当RL数组填充完毕 计算L[i] * R[i]
for(int k = 0; k < nums.length; k++){
ans[k] = L[k] * R[k];
}
return ans;
}
}
文章来源地址https://www.toymoban.com/news/detail-606977.html
文章来源:https://www.toymoban.com/news/detail-606977.html
到了这里,关于【前缀和】238. 除自身以外数组的乘积的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!