数组剔除元素后的乘积

题目

这道题很简单,不过为了保证lintcode专题包含所有题目,还是也简单记录一下吧。

给定一个整数数组A。定义B[i] = A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1], 计算B的时候请不要使用除法。
http://www.lintcode.com/zh-cn/problem/product-of-array-exclude-itself/

分析

直接乘,就AC了。

代码


public class Solution {
    
    long eproduct(List < Integer>nums, int index){
        long product = 1l;
        
        for(int i=0; i < nums.size(); i++){
            if(i == index){
                continue;
            }
            product *= nums.get(i).intValue();
        }
        
        return product;
    }
    /*
     * @param nums: Given an integers array A
     * @return: A long long array B and B[i]= A[0] * ... * A[i-1] * A[i+1] * ... * A[n-1]
     */
    public List< Long> productExcludeItself(List< Integer> nums) {
        // write your code here
        ArrayList b = new ArrayList();
        for(int i=0; i< nums.size(); i++){
            b.add(new Long(eproduct(nums, i)));
        }
        return b;
    }
}
Show Comments

Get the latest posts delivered right to your inbox.