LintCode- 最长上升连续子序列

最长上升连续子序列

给定一个整数数组(下标从 0 到 n-1, n 表示整个数组的规模),请找出该数组中的最长上升连续子序列。(最长上升连续子序列可以定义为从右到左或从左到右的序列。)

样例
给定 [5, 4, 2, 1, 3], 其最长上升连续子序列(LICS)为 [5, 4, 2, 1], 返回 4.

给定 [5, 1, 2, 3, 4], 其最长上升连续子序列(LICS)为 [1, 2, 3, 4], 返回 4.

注意
time

public class Solution {
    /**
     * @param A an array of Integer
     * @return  an integer
     */
    public int longestIncreasingContinuousSubsequence(int[] A) {
           int max = 1,count = 1;
           if(A.length <=0){
               return A.length;
           }
           //正向遍历
           for(int i = 1; iwhile(iA[i-1] ){
                   i++;
                   count++;
               }if(count > max){
                   max = count;
               }
               count = 1;
               i++;
           }
           //反向遍历
           for(int i = A.length - 1 ; i >= 0; ){
               while(i > 0 && A[i]1]  ){
                   i--;
                   count++;
               }if(count > max){
                   max = count;
               }
               count = 1;
               i--;
           }


           return max;

       }
}

你可能感兴趣的:(数据结构&算法)