一、LintCode鏈接
二、問題描述
給定一個(gè)整數(shù)數(shù)組(下標(biāo)從 0 到 n-1, n 表示整個(gè)數(shù)組的規(guī)模),請找出該數(shù)組中的最長上升連續(xù)子序列。(最長上升連續(xù)子序列可以定義為從右到左或從左到右的序列。)
三、關(guān)鍵點(diǎn)分析
- 連續(xù)上升,從左到右或從右到左
- 最長
- 不考慮相鄰數(shù)據(jù)相等
四、解決思路(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;
}