美文网首页
152. 乘积最大子序列

152. 乘积最大子序列

作者: 最困惑的时候就是能成长的时候 | 来源:发表于2019-07-29 14:54 被阅读0次

    152. 乘积最大子序列

    1.想法:

    1.如果全都是正数,那么就不用了算了,直接将所有的值都乘起来,而,如果全都是负数,直接返回最长的偶数个数列的乘积,
    2.混合队列的话只记录局部最大值并不能找到最大值,需要记录其最小值,然后在所有最大值里面找到最大值.


    image.png

    2.代码

     class Solution {
        public int maxProduct(int[] nums) {
            int result = nums[0],Min = nums[0],Max=nums[0];
            for(int i=1;i<nums.length;i++){
                int temp1 = Max*nums[i];
                int temp2 = Min*nums[i];
                int tempMax = temp1>temp2?temp1:temp2;
                int tempMin = temp1<=temp2?temp1:temp2;
                int max = tempMax>nums[i]?tempMax:nums[i];
                int min = tempMin<=nums[i]?tempMin:nums[i];
                Max=max;
                Min=min;
                if(Max>result){
                    result = Max;
                }
            }
            return result;
        }
    }
    

    相关文章

      网友评论

          本文标题:152. 乘积最大子序列

          本文链接:https://www.haomeiwen.com/subject/bzdbrctx.html