最大乘積子序列:
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;
}