首页 > 代码库 > 最长上升连续子序列 Linkcode
最长上升连续子序列 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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。