238. Product of Array Except Self

public class Solution {
    public int[] productExceptSelf(int[] nums) {
        int size=nums.length;
        int[] res=new int[size];
        //先找到有多少个0位
        int num_of_zero=0;
        int sum_without_zero=1;
        int last_index_zero=0;
        for(int i=0;i<size;i++)
        {
            if(nums[i]==0)
            {
                last_index_zero=i;
                num_of_zero++;
            }
            else
                sum_without_zero*=nums[i];
        }
    
        for(int i=0;i<size;i++)
        {
            if(num_of_zero>=2)
                res[i]=0;
            else if(num_of_zero==1)
            {
                if(i==last_index_zero)
                    res[i]=sum_without_zero;
                else
                    res[i]=0;
            }
            else
                res[i]=sum_without_zero/nums[i];
        }
        return res;
    }
}

 

posted @ 2016-04-20 09:50  阿怪123  阅读(71)  评论(0编辑  收藏  举报