最长上升子序列 题解

摘要:
最长的升序子序列的时间限制:1秒内存限制:128M主题描述一个数字序列bi。当b1˂b2˂…˂bS时,我们称此序列为升序。输出描述最长的升序子序列的长度。样本输入71735948输出4提示另一组测试数据输入43486341527189740490388894897111743058449714929989544832442461990615429339573573891545374878655081932693325390473235354364输出11要写出最长的升序,我们定义len[]数组以记录以num[i]结尾的每个升序子序列的长度。最大值为正解。
最长上升子序列
时间限制:1秒 内存限制:128M
题目描述


一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3, 5, 9, 4, 8),有它的一些上升子序列,如(1, 7), (3, 4, 8)等等。这些子序列中最长的长度是4,比如子序列(1, 3, 5, 8).



你的任务,就是对于给定的序列,求出最长上升子序列的长度。

输入描述


输入的第一行是序列的长度N (1 <= N <= 1000)。第二行给出序列中的N个整数,这些整数的取值范围都在0到10000。

输出描述


最长上升子序列的长度。

样例
输入
7
1 7 3 5 9 4 8
输出
4
提示

另一组测试数据

输入

43
486 341 527 189 740 490 388 989 489 711 174 305 844 971 492 998 954 832 442 424 619 906 154 293 395 439 735 738 915 453 748 786 550 871 932 693 326 53 904 732 835 354 364

输出

11 

为了写出最长的上升序列,我们定义了len[]数组来记录每个以num[i]结尾的上升子序列的长度。初始长度设为1,如满足(num[i]>num[j]&&len[i]<len[j]+1)判断条件-------前一个数比后一个数小,并且与len[j]+1,比较大小,从而得出以num[i]结尾的最长上升子序列,并用其长度与max------及存储总最长上升子序列的比较器,比较。得出最大的max,即为正解。

#include<iostream>
using namespace std;
int main()
{
int num[1005],len[1005];
int max=1,n;
cin>>n;
int i,j;
for(i=1;i<=n;i++)
{
cin>>num[i];
}
for(i=1;i<=n;i++)
{
len[i]=1;
for(j=1;j<i;j++)
{
if(num[i]>num[j]&&len[i]<len[j]+1)
{
len[i]=len[j]+1;
}
}
if(max<len[i])
{
max=len[i];
}
}
cout<<max;
return 0;
}

免责声明:文章转载自《最长上升子序列 题解》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ABP官方文档翻译 3.8 数据过滤器WSDL2Java操作指南下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

教你在Android手机上使用全局代理

这样,QQ、飞信和微博等个人应用就不能使用系统代理。ProxyDroid可以帮助您解决此问题!使用方法和步骤如下:1.建议从Google Play下载ProxyDroid。最新版本为v2.6.6。NTLM身份验证:NTLM/NTLM2(早期的Windows身份验证方法)未选中。DNSProxy:启用DNS代理。...

Corn表达式

CronTriggerCronTrigger通常比SimpleTrigger更有用。如果您需要基于日历的概念,而不是SimpleTrigger完全指定的时间间隔,则重复启动工作的时间表。CronTrigger,您可以指定触发器计划,例如“每周五中午”、“每工作日9:30”,甚至“每周一上午、周三和周五9:00和10:00每五分钟”。即使如此,就像Simple...

postman点击一次连续发送多次请求

可以测试同一个时间点创建订单。因为在工作中遇到的以此记录下,在工作上遇到同一个时间点产生了相同的赛时单号。...

IPv6地址的ping、telnet等操作

最近,我在研究https协议如何传输数据。我用wireshark捕捉数据包并分析它们。我发现客户端和谷歌网站在传输数据时使用了IPv6地址,因此我测试了与IPv6地址相关的基本功能。...

Linux终端使用aplay播放wav

Linux终端使用aplay播放wavplay,这是ALSA声音文件记录器的驱动程序。在Linux中,您可以使用以下命令检查用法:manaplay可以用于播放。wav音频文件aplay Dplughw:0,0xxx。wavplughw后面的0,0表示声卡ID和设备ID,这取决于您自己的设备。...

data文件夹权限修改

我们可以用..sdkplatform-tools里面的adb工具进行修改:用adbshell打开和linux类似的shell界面,可以看到提示符是$,还是普通用户,我们需要对权限进行提升:这里注意!chmod更改权限,和linux一毛一样。data文件的权限立马就达到最高,单击可也打开了。然而data/data文件夹任然是不可工作的,继续修改继续修改包的权限...