码迷,mamicode.com
首页 > 编程语言 > 详细

每日算法-05(最长上升子序列)

时间:2020-04-11 15:47:11      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:输出   ++   img   oid   tin   ring   return   scanner   个数   

求最长上升子序列

第一行输入一个数n,接下来一行,输入n个数值,求最长上升子序列;
输入例子:
5
2 1 8 3 6
输出:
3
解析:1 3 6

赶脚这个代码还是很菜,先上菜吧,开个胃,哈哈哈;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int i=0,j=0;
		int dp[]=new int[n+1];int aa[]=new int [n+1];
		for(i=0;i<n;i++)
		{
			aa[i]=in.nextInt();
		}
		int ans=0;
		for(i=0;i<aa.length;i++)
		{
			dp[i]=1;
			for(j=0;j<i;j++)
			{
				if(aa[j]<aa[i])
				{
					dp[i]=Math.max(dp[j]+1,dp[i]);
				}
			}
			ans=Math.max(ans,dp[i]); 
		}
		System.out.print(ans);
		return;
	}

}

技术图片
仅自己这样想的,不包含科学质上对哈,有错欢迎提出。?

每日算法-05(最长上升子序列)

标签:输出   ++   img   oid   tin   ring   return   scanner   个数   

原文地址:https://www.cnblogs.com/lwyy1223-/p/12680044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!