lintcode-最长上升连续子序列-397

class Solution {
public:
    
    int longestIncreasingContinuousSubsequence(vector<int>& A) {
        const int n=A.size();
        if(0==n)
            return 0;
        if(1==n)
            return 1;
        int rdp[n],rmax=0,ldp[n],lmax=0;
        for(int i=0;i<n;++i){
            rdp[i]=1;
            ldp[i]=1;
        }
        
        for(int i=1;i<n;++i){
            if(A[i]>A[i-1]){
                ldp[i]=ldp[i-1]+1;
                if(lmax<ldp[i])
                    lmax=ldp[i];
            }
        }
        for(int i=n-2;i>=0;--i){
            if(A[i]>A[i+1]){
                rdp[i]=rdp[i+1]+1;
                if(rmax<rdp[i])
                    rmax=rdp[i];
            }
        }
        return lmax>rmax?lmax:rmax;
    }
};

你可能感兴趣的:(lintcode-最长上升连续子序列-397)