50. 数组剔除元素后的乘积

思路

这道题使用的是分治法, result[i] = left[i-1] + right[i+1];下面使用巧妙的实现

代码

public static List productExcludeItself(List nums) {
         Long temp = Long.parseLong("1");

         List left = new ArrayList();


         for (int i = 0; i < nums.size(); i++) {
             left.add(temp);
             temp *= nums.get(i);
         }

         temp = Long.parseLong("1");

         for (int i = nums.size()-1; i >=0; i--) {
             left.set(i, left.get(i) * temp);
             temp *= nums.get(i);
         }

         return left;
     }

参考

  • https://blog.csdn.net/shinanhualiu/article/details/48880049

你可能感兴趣的:(lintcode)