classSolution{publicintmaxProduct(int[] nums){int len = nums.length;int ans = nums[0];//计算前缀积int[] prePro =newint[len+1];
prePro[0]=1;for(int i =0; i < len; i++){if(prePro[i]==0){
prePro[i+1]= nums[i];}else{
prePro[i+1]= prePro[i]*nums[i];}if(prePro[i+1]> ans) ans = prePro[i+1];}for(int left =0; left < len; left++){if(prePro[left]==0){if(0> ans) ans =0;while(left<len && prePro[left]==0) left++;}for(int right = left+1; right < len+1; right++){if(prePro[right]==0)break;if(prePro[right]/prePro[left]> ans) ans = prePro[right]/prePro[left];}}return ans;}}