最大乘积或和子序列

来源:互联网 发布:红蓝光美容仪 知乎 编辑:程序博客网 时间:2024/05/16 07:46

最大乘积子序列:

public int maxProduct(int[] nums) {        if(nums==null||nums.length==0){            return 0;        }        int n=nums.length;        int max[]=new int[n];        int min[]=new int[n];        max[0]=nums[0];        min[0]=nums[0];        int ans=nums[0];        for(int i=1;i<n;i++){           max[i]=Integer.max(min[i-1]*nums[i],Integer.max(nums[i],max[i-1]*nums[i]));           min[i]=Integer.min(min[i-1]*nums[i],Integer.min(nums[i],max[i-1]*nums[i]));           if(ans<max[i]){               ans=max[i];           }        }        return ans;    }

最大和子序列

public static int maxSum(int[] nums) {        if(nums==null||nums.length==0){            return 0;        }        int n=nums.length;        int max[]=new int[n];        max[0]=nums[0];                int ans=nums[0];        for(int i=1;i<n;i++){           max[i]=Integer.max(nums[i],nums[i]+max[i-1]);           if(ans<max[i]){           ans=max[i];           }        }        return ans;    }


0 0