leetcode:238. Product of Array Except Self(Java)解答

来源:互联网 发布:淘宝店家用什么快递 编辑:程序博客网 时间:2024/06/06 02:32

转载请注明出处:z_zhaojun的博客
原文地址
题目地址
Product of Array Except Self

Given an array of n integers where n > 1, nums, return an array output such that output[i] is equal to the product of all the elements of nums except nums[i].Solve it without division and in O(n).For example, given [1,2,3,4], return [24,12,8,6].Follow up:Could you solve it with constant space complexity? (Note: The output array does not count as extra space for the purpose of space complexity analysis.)Subscribe to see which companies asked this question

解法(java):

public int[] productExceptSelf(int[] nums) {        // if (nums == null || nums.length < 2) {        //     return null;        // }        int first = nums[0];        int product = 1;        int numZero = 0;        for (int val : nums) {            if (val == 0) {                numZero++;                if (numZero == 2) {                    break;                }            } else {                product *= val;            }        }        nums[0] = (numZero == 2) ? 0 : (numZero == 0 ? product / first : (first == 0 ? product : 0));        for (int i = 1; i < nums.length; i++) {            nums[i] = (numZero == 2) ? 0 : (numZero == 0 ? product / nums[i] : (nums[i] == 0 ? product : 0));        }        return nums;    }
1 0
原创粉丝点击