您的位置:首页 > 产品设计 > UI/UE

(leetcode) 238. Product of Array Except Self My Submissions QuestionEditorial Solution

2016-04-09 13:27 561 查看
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.)

思路:如果这个数组中有大于等于2个0的时候,肯定都是0,如果这个数组中只有一个0,那么除这个为0的位置外,别的位置都为0,对于没有0的情况,先把所以数存起来,当前位置的值,等于乗起来的值除以当前的值。

代码如下(已通过leetcode)

public class Solution {

public int[] productExceptSelf(int[] nums) {

int count0=0;

for(int i=0;i<nums.length;i++)

if(nums[i]==0) count0++;

if(count0>=2) {

for(int i=0;i<nums.length;i++)

nums[i]=0;

} else {

if(count0==1) {

int tempmul=1;

for(int i=0;i<nums.length;i++)

if(nums[i]!=0) tempmul=tempmul*nums[i];

for(int i=0;i<nums.length;i++)

if(nums[i]==0) nums[i]=tempmul;

else nums[i]=0;

} else {

int tempmul=1;

for(int i=0;i<nums.length;i++)

tempmul=tempmul*nums[i];

for(int i=0;i<nums.length;i++)

nums[i]=tempmul/nums[i];

}

}

return nums;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: