最长上升子序列

原创 2018年04月16日 15:36:42
链接:https://www.nowcoder.com/questionTerminal/d83721575bd4418eae76c916483493de
来源:牛客网

[编程题]最长上升子序列
广场上站着一支队伍,她们是来自全国各地的扭秧歌代表队,现在有她们的身高数据,请你帮忙找出身高依次递增的子序列。 例如队伍的身高数据是(1、7、3、5、9、4、8),其中依次递增的子序列有(1、7),(1、3、5、9),(1、3、4、8)等,其中最长的长度为4。
输入描述:
输入包含多组数据,每组数据第一行包含一个正整数n(1≤n≤1000)。

紧接着第二行包含n个正整数m(1≤n≤10000),代表队伍中每位队员的身高。


输出描述:
对应每一组数据,输出最长递增子序列的长度。
示例1

输入

7
1 7 3 5 9 4 8
6
1 3 5 2 4 6

输出

4
4


#include<stdio.h>
#define N 1020
int dp[N],a[N];
int max(int i,int j);
int main(void)
{
	int n,i,j,longest;
	while(scanf("%d",&n)!=EOF)
	{
		longest=1;
		for(i=1;i<=n;i++)
		{
			scanf("%d",&a[i]);
			dp[i]=1;
		}
		for(i=2;i<=n;i++)
		{
			for(j=1;j<i;j++)
			  if(a[i]>a[j])
				dp[i]=max(dp[j]+1,dp[i]);
			longest=max(dp[i],longest);
		}
		printf("%d\n",longest);
	}
	
}
int max(int i,int j)
{
	if(i>j)
		return i;
	return j;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41505957/article/details/79961402

最长上升子序列的两种算法

最长上升子序列英文全称:Longest Increasing Subsequence 一.O(n*n)算法,dp[i]表示以ai为末尾的最长上升子序列的长度,而以ai结尾的最长上升子序列有两种:1...
  • qq_34681949
  • qq_34681949
  • 2016-08-11 21:21:00
  • 5606

最长上升子序列的两种方法

最长上升子序列的两种方法
  • mimi9919
  • mimi9919
  • 2016-04-25 21:56:54
  • 2433

LIS(最长上升子序列)问题的三种求解方法以及一些例题

摘要本篇博客介绍了求LIS的三种方法,分别是O(n^2)的DP,O(nlogn)的二分+贪心法,以及O(nlogn)的树状数组优化的DP,后面给出了4道LIS的例题。LIS的定义一个数的序列bi,当b...
  • George__Yu
  • George__Yu
  • 2017-07-23 11:34:23
  • 3381

hdu3998 Sequence(最长上升子序列及其个数)

Description There is a sequence X (i.e. x[1], x[2], ..., x[n]). We define increasing subsequence ...
  • zs120197
  • zs120197
  • 2016-09-10 11:13:50
  • 1163

最长上升子序列 Longest Increasing Subsequence 输出其中一个序列 O(n^2) O(nlogn)

最长上升子序列 概念 维基百科->Longest Increasing Subsequence 算法一:动态规划 数据定义: a[] : 输入序列 ...
  • YorkCai
  • YorkCai
  • 2013-03-08 19:26:11
  • 5467

Java实现-最长上升子序列

public class Solution { /** * @param nums: The integer array * @return: The length of ...
  • qq_14927217
  • qq_14927217
  • 2017-06-09 10:44:33
  • 482

动态规划 最长上升子序列(LIS)

O(N2)写法: memset(dp, 0, sizeof(dp)) for(i = 0; i          dp[i]= 1;          for(j= 0; j           ...
  • Strokess
  • Strokess
  • 2016-07-27 16:44:48
  • 3248

【NOIP 模拟题】T2(next数组|线段树+最长上升子序列)

年华终将老去,我站在青春的尾尖静静眺望
  • reverie_mjp
  • reverie_mjp
  • 2016-10-24 21:57:31
  • 360

cogs1398 最长单调子序列 单调栈改进

cogs原题:点击打开链接 单调栈改进: ~从前往后扫描序列维护单调栈h ~h【i】表示当前扫描到的位置中,存在长度为i的最长上升子序列,序列中最后一个数(即最大值)的值。 ~当扫描到某一...
  • sdfzsyh
  • sdfzsyh
  • 2017-04-30 21:11:09
  • 264

最长上升子序列nlogn通解(dp之线段树优化)

对于任何一个子序列,我们可以轻易d'l
  • u013665921
  • u013665921
  • 2014-10-07 18:38:32
  • 974
收藏助手
不良信息举报
您举报文章:最长上升子序列
举报原因:
原因补充:

(最多只允许输入30个字)