- int all
- 数组中非0的数乘积
int count
- 数组的有多少个数是0
如果count = 0, 没有零
- 那么ans[i] = all除以arr[i
- 如果count == 1,
- 那么只有那个是0的数的位置i ans[i] = all, 数组ans其余的数都为0
如果count >=2
那么数组ans的数全部都是零
public int[] productExceptSelf(int[] nums) { int zeros = 0; int all = 1; for (int num : nums) { if (num == 0) { zeros++; } else { all *= num; } } if (zeros > 1) { for (int i = 0; i < nums.length; i++) { nums[i] = 0; } } else if (zeros == 1) { for (int i = 0; i < nums.length; i++) { nums[i] = nums[i] == 0 ? all : 0; } } else { for (int i = 0; i < nums.length; i++) { nums[i] = all / nums[i]; } } return nums; }
