力扣HOT100 - 238. 除自身以外数组的乘积
解题思路:
当前位置的结果就是它左部分的乘积再乘以它右部分的乘积。因此需要进行两次遍历,第一次遍历用于求左部分的乘积,第二次遍历在求右部分的乘积的同时,再将最后的计算结果一起求出来。
class Solution {
public int[] productExceptSelf(int[] nums) {
int len = nums.length;
if (len == 0)
return new int[0];
int[] ans = new int[len];
ans[0] = 1;
int tmp = 1;
//左半部分乘积
for (int i = 1; i < len; i++) {
ans[i] = ans[i - 1] * nums[i - 1];
}
//右半部分乘积,巧妙地使用tmp
for (int i = len - 2; i >= 0; i--) {
tmp *= nums[i + 1];
ans[i] *= tmp;
}
return ans;
}
}
原文地址:https://blog.csdn.net/qq_61504864/article/details/137609831
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!