给你一个整数数组 nums
,返回 数组 answer
,其中 answer[i]
等于 nums
中除 nums[i]
之外其余各元素的乘积 。
题目数据 保证 数组 nums
之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。
请不要使用除法,且在 O(n)
时间复杂度内完成此题。
class Solution {
public int[] productExceptSelf(int[] nums) {
int len = nums.length;
int[] res = new int[len];
int p = 1;
int q = 1;
for(int i = 0;i < len;i++){
res[i] = p;
p *= nums[i];
}
for(int i = len-1;i >= 1;i--){
q *= nums[i];
res[i-1] *= q;
}
return res;
}
}