最大连续子数组和:
递推式:curmax=max(a[i],curmax) 其中curmax是以i为结尾(意思必须取到a[i])和的最大值,其中每次循环比较curmax和已经保存最大值
最大连续子数组积:
curmax是以i为结尾(意思必须取到a[i])的乘积最大值。
递推式:curmax=max( a[i] , max ( lastmax*a[i] , lastmin*a[i] ) )
curmin=min ( a[i] , min ( lastmax*a[i] , lastmin*a[i] ) )
每次循环比较curmax和当前保存的最大值
最大递增子序列:
curmax[i] 表示以a[i]为结尾中最长递增子序列长度。
递推式:curmax[i]=max(curmax[i-1],max(curmax[j]+1 if a[i]>a[j] 0<j<i))
扫描二维码关注公众号,回复:
2163237 查看本文章
最大连续子数组和
int maxhe(vector<int>& a){
int lastmax=a[0];
int result=a[0];
int curmax=a[0];
for(int i=1;i<a.size();++i){
curmax=max(a[i],lastmax);
result=max(curmax,result);
lastmax=curmax;
}
return result;
}