思路:
1.当0的个数大于等于2时,返回全为0的数组
2.当0的个数为1时,0对应的返回total,其他的为0
3.当无0时,total除以当前数
public class Solution {
public int[] productExceptSelf(int[] nums) {
int len = nums.length,
total = nums[0],
flag = 0,
i = 1;
int[] result = new int[len];
for(;i < len;i++) {
if(nums[i] == 0) {
flag++;
if(flag >= 2) {
return result;
}
}
if(nums[i] != 0) {
total = total * nums[i];
}
}
for(i = 0;i < len;i++) {
if(nums[i] != 0 && flag == 1) {
result[i] = 0;
} else if(nums[i] != 0 && flag == 0) {
result[i] = total/nums[i];
} else{
result[i] = total;
}
}
return result;
}
}
本文介绍了一种算法,用于求解给定数组中每个元素的乘积,但不包括该元素本身。通过三种情况讨论:包含两个或更多个0、仅包含一个0以及不包含0的情况,并给出具体实现。
242

被折叠的 条评论
为什么被折叠?



