day02(10.29)——leetcode面试经典150
238. 除自身以外数组的乘积
238. 除自身以外数组的乘积
题目:


题解:
class Solution {public int[] productExceptSelf(int[] nums) {//计算乘积的变量int sum=1;//统计数组中数值为0的个数int flag = 0;//统计数组中除了零以外的乘积for(int i:nums) {if(i != 0) {sum*=i; }else {flag ++;}}//定义一个数组int[] answer = new int[nums.length];for(int i=0;i<nums.length;i++) {//数组只有一个数为0的时候,为0的数的乘积是有值的if(flag == 1) {if(nums[i] != 0) {answer[i] = 0;}else {answer[i] = sum;}}//数组中没有数为0的时候,正常进行计算——上面统计的数组的乘积分别除以各自的值else if(flag == 0) {answer[i] = sum/nums[i];} //数组中有两个以上的数为0时,所有数都为0 else {answer[i] = 0;} }return answer;}
}
