您的位置:首页 > 编程语言 > Java开发

(java) Product of Array Except Self

2016-02-17 00:42 531 查看
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.如果只有1个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;

}

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