思路:
先从左到右遍历,将每一个元素左边所有元素(不包括它自己)的乘积保存下来。
再从右往左遍历,将每一个元素右边所有元素(不包括它自己)的乘积保存下来。
把这两个数组对应元素相加即为所求。
class Solution {
public int[] productExceptSelf(int[] nums) {
int[] o1 = new int[nums.length];
for(int i=0;i<nums.length;i++)
{
if(i==0)
o1[i] = 1;
else
o1[i] = nums[i-1]*o1[i-1];
}
int[] o2 = new int[nums.length];
int[] output = new int[nums.length];
for(int i=nums.length-1;i>=0;i--)
{
if(i==nums.length-1)
o2[i] = 1;
else
o2[i] = nums[i+1]*o2[i+1];
output[i] = o1[i]*o2[i];
}
return output;
}
}