第一个for循环里面数组存放的是前i个元素相乘的结果(不包含第i个)。
第二个数组使用反向遍历,先求出来的是第i个数后面的乘积,与第i个数前面的乘积相乘。
class Solution {
public int[] productExceptSelf(int[] nums) {
int a[]=new int[nums.length];
for(int i = 0 , temp = 1; i < nums.length;i++){
a[i] = temp;
temp*= nums[i];
}
for(int i = nums.length-1,temp=1 ; i>=0 ; i--){
a[i] *=temp;
temp *=nums[i];//第i个数后面的成绩
}
return a;
}
}