// 遍历两次,一次乘左边的数,一次乘右边的数
class Solution {
public int[] productExceptSelf(int[] nums) {
int[] result = new int[nums.length];
int k = 1;
for (int i = 0; i < result.length; i++) {
result[i] = k;
// 此时数组存储的是除去当前元素左边的元素乘积
k = k * nums[i];
}
k = 1;
for (int i = result.length - 1; i >= 0; i--) {
// k为该数右边的乘积
result[i] *= k;
// 此时数组等于左边的 * 该数右边的
k *= nums[i];
}
return result;
}
}
leetcode238. 除自身以外数组的乘积
最新推荐文章于 2024-08-04 17:57:55 发布