最长上升连续子序列 Linkcode
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最长上升连续子序列 Linkcode相关的知识,希望对你有一定的参考价值。
问题:
给定一个整数数组(下标从 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
.
给定 [1, 1, 1, 1, 1]
, 其最长上升连续子序列(LICS)为 [1]
, 返回 1.
1 public class Solution { 2 /** 3 * @param A an array of Integer 4 * @return an integer 5 */ 6 public static int longestIncreasingContinuousSubsequence(int[] A) { 7 if(A.length==0) 8 return 0; 9 int hz,hj,r,maxz,maxj; 10 hz=hj=0; 11 r=maxz=maxj=1; 12 13 while(r<A.length){ 14 if(A[r]<A[r-1]){ 15 maxz = Math.max(maxz, r-hz); 16 hz = r; 17 }else if(A[r]>A[r-1]){ 18 maxj = Math.max(maxj, r-hj); 19 hj = r; 20 }else{ 21 hz = hj = r; 22 } 23 r++; 24 } 25 maxz = Math.max(maxz, r-hz); 26 maxj = Math.max(maxj, r-hj); 27 return Math.max(maxz, maxj); 28 } 29 }
以上是关于最长上升连续子序列 Linkcode的主要内容,如果未能解决你的问题,请参考以下文章