package leetcode;
public class demo_238 {
public int[] productExceptSelf(int[] nums) {
int[] left=new int[nums.length];
int[] right=new int[nums.length];
int res[]=new int[nums.length];
//记录从左边开始的累计积
left[0]=nums[0];
for(int i=1;i<nums.length;i++) {
left[i]=left[i-1]*nums[i];
}
//记录从右边开始的累计积
right[nums.length-1]=nums[nums.length-1];
for(int i=nums.length-2;i>-1;i--) {
right[i]=right[i+1]*nums[i];
}
res[0]=right[1];
res[nums.length-1]=left[nums.length-2];
//结果为左边的累计积乘以右边的累计积
for(int i=1;i<nums.length-1;i++) {
res[i]=left[i-1]*right[i+1];
}
for (int i : res) {
System.out.println(i);
}
return res;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
demo_238 demo=new demo_238();
int[] nums= {1,2,3,4};
demo.productExceptSelf(nums);
}
}