当前位置:网站首页 > 更多 > 编程开发 > 正文

[算法刷题] 最长递增子序列

作者:CC下载站 日期:2020-10-14 00:00:00 浏览:56 分类:编程开发

【问题描述】
在数列 a[1], a[2], ..., a[n] 中,如果 a[i] < a[i+1] < a[i+2] < ... < a[j],则称 a[i] 至 a[j] 为一段递增序列,长度为 j-i+1。
给定一个数列,请问数列中最长的递增序列有多长。
【输入格式】
输入的第一行包含一个整数 n。
第二行包含 n 个整数 a[1], a[2], ..., a[n],相邻的整数间用空格分隔,表示给定的数列。
【输出格式】
输出一行包含一个整数,表示答案。
【样例输入】
7
5 2 4 1 3 7 2
【样例输出】
3
【评测用例规模与约定】
对于 50% 的评测用例,2 <= n <= 100,0 <= 数列中的数 <= 1000。
对于所有评测用例,2 <= n <= 1000,0 <= 数列中的数 <= 10000。

importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.List;
importjava.util.Scanner;

publicclass最长递增{

	/**
	*@paramargs
	*/
	publicstaticvoidmain(String[]args){
		//TODOAuto-generatedmethodstub
		Scannersc=newScanner(System.in);
		inta=sc.nextInt();
		int[]b=newint[a];
		for(inti=0;i<b.length;i++){
			b[i]=sc.nextInt();
		}
		sc.close();
		List<Integer>result=newArrayList<Integer>();
		for(inti=0;i<b.length;i++){
			intcount=1;
			for(intj=i;j<b.length-1;j++){
				if(b[j]<b[j+1]){
					count++;
				}else{
					break;
				}
			}
			result.add(count);
		}
		System.out.println(Collections.max(result));
	}

}


您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯