/**
* TODO
*
* @author
* @version 1.0
* @date 2022/3/19 15:08
* 最长连续递增子序列(部分有序)
* 1,8,9,2,5,7,3,4,6,8 中最长的递增子序列(3,4,6,8)
* 使用双指针,第一个指针记录次数,第二个指针移动进行比较,
* 等到下一个数比自己小的时候,就算记录的次数
*/
public class case2_最长连续递增有序列 {
public static void main(String[] args) {
int[] arr = { 8,9, 2, 5,6, 7,10, 3, 4, 6, 8,10,12,1,5};
maxLength(arr);
}
static void maxLength(int[] arr) {
int count = 1; //记录次数
int begin = 0;//记录每一个序列第一个开始的数
int max = 0;
for (int i = 0; i < arr.length - 1; i++) {
if (arr[i] < arr[i + 1]) { //大于次数递增
count++;
} else { //置1重新开始
count = 1;
}
if (count > max) {
max = count;
begin = i - max + 1; //该序列最大的长度
}
}
for (int i = begin+1; i <=begin + max; i++)
System.out.print(arr[i] + " ");
}
}
09-25
1066
07-08
597