238. Product of Array Except Self

自己想的就差一点点,好可惜!!

正着走一遍,每一格里面存的是,从0到这一位之前的数连乘结果。

再反着走一遍,用各自里本身的值,乘以从后往前除它之外的连乘结果,然后更新连乘的结果

 

 1     public int[] productExceptSelf(int[] nums) {
 2         int len = nums.length;
 3         int[] res = new int[len];
 4         res[0] = 1;
 5         for(int i = 1; i < len; i++) {
 6             res[i] = nums[i-1] * res[i-1];
 7         }
 8         int right = nums[len-1];
 9         for(int i = len - 2; i >= 0; i--) {
10             res[i] *= right;
11             right *= nums[i];
12         }
13         return res;
14     }

 

posted @ 2016-07-29 03:17  warmland  阅读(95)  评论(0编辑  收藏  举报