238_除自身以外数组的乘积
小于 1 分钟
238_除自身以外数组的乘积中等
原数组: [1 2 3 4]
左部分的乘积: 1 1 12 123
右部分的乘积: 234 34 4 1
结果: 1234 134 124 1231
建立两个左右数组,通过两次for遍历得出结果
class Solution {
public int[] productExceptSelf(int[] nums) {
int len = nums.length;
// 左右数组
int[] left = new int[len];
int[] right = new int[len];
int[] res = new int[len];
left[0] = 1;
right[len - 1] = 1;
// 计算左右数组对应的值
for (int i = 1 ; i < len; i++) {
left[i] = left[i - 1] * nums[i - 1];
right[len -1 - i] = right[len - i] * nums[len - i];
}
// 相乘为结果
for (int i = 0; i < len; i++) {
res[i] = left[i] * right[i];
}
return res;
}
}
Powered by Waline v2.15.5