# leetcode：238. Product of Array Except Self（Java）解答

1283人阅读 评论(0)

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].

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

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

* 以上用户言论只代表其个人观点，不代表CSDN网站的观点或立场
个人资料
• 访问：148579次
• 积分：2156
• 等级：
• 排名：第18389名
• 原创：44篇
• 转载：29篇
• 译文：0篇
• 评论：52条
博客专栏
 leetcode算法分析 文章：11篇 阅读：16511
 Android的美 文章：6篇 阅读：17841
 android初级进阶 文章：48篇 阅读：120157
友情链接
评论排行
最新评论