美文网首页
数组-最长上升连续子序列

数组-最长上升连续子序列

作者: Summer舒舒 | 来源:发表于2017-11-05 17:57 被阅读6次

    一、LintCode链接

    最长上升连续子序列

    二、问题描述

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

    三、关键点分析

    • 连续上升,从左到右或从右到左
    • 最长
    • 不考虑相邻数据相等

    四、解决思路(Java)

      public int longestIncreasingContinuousSubsequence(int[] A) {
            if (A == null) {
                return 0;
            }
    
            if (A.length <= 2) {
                return A.length;
            }
    
            int maxLength = 2;
            int currentLength = 2;
    
            for (int i = 2; i < A.length; i++) {
                if (A[i - 2] < A[i - 1] && A[i - 1] < A[i]
                        || A[i - 2] > A[i - 1] && A[i - 1] > A[i]) {
                    currentLength++;
                } else {
                    maxLength = Math.max(maxLength, currentLength);
                    currentLength = 2;
                }
            }
    
            maxLength = Math.max(maxLength, currentLength);
            return maxLength;
        }
    

    相关文章

      网友评论

          本文标题:数组-最长上升连续子序列

          本文链接:https://www.haomeiwen.com/subject/blkhmxtx.html