题目链接:LeeCode238除自身以外数组的乘积
题目描述:
这道题属实没想到进阶的解法,看了题解才会的,定义一个常数先从左向右将答案数组都存当前数左边的乘积,然后反向遍历,用常数存当前数右边的乘积,再和刚才存下来的左边数的乘积相乘
public static int[] productExceptSelf(int[] nums) {
int k=1;
int[] ans=new int[nums.length];
ans[0]=1;
for (int i = 1; i < nums.length; i++) {
k*=nums[i-1];
ans[i]=k;
}
k=1;
for (int i = nums.length-2; i >=0; i--) {
k*=nums[i+1];
ans[i]*=k;
}
return ans;
}