ny214 单调递增子序列(二) 动态规划
2024-08-20 11:09:26
单调递增子序列(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:4
- 描述
-
给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。
如:1 9 10 5 11 2 13的最长单调递增子序列是1 9 10 11 13,长度为5。
- 输入
- 有多组测试数据(<=7)
每组测试数据的第一行是一个整数n表示序列中共有n个整数,随后的下一行里有n个整数,表示数列中的所有元素.每个整形数中间用空格间隔开(0<n<=100000)。
数据以EOF结束 。
输入数据保证合法(全为int型整数)! - 输出
- 对于每组测试数据输出整形数列的最长递增子序列的长度,每个输出占一行。
- 样例输入
-
7
1 9 10 5 11 2 13
2
2 -1 - 样例输出
-
5
1
常规方法,会超时的,AC代码一:#include<stdio.h>
#include<string.h>
int main()
{
int b[],a[];
int i,j,n,t,max;
while(scanf("%d",&t)!=EOF)
{ max=;
memset(b,,sizeof(b));
for(i=;i<t;i++)
scanf("%d",&a[i]);
b[] = a[];
for(i = , j = ; i < t; i++)
{ if(a[i]> b[j-])//判断如果出现后面的有大于前面的数就保存起来;
b[j++] = a[i];//保存的同时,j的值也在不断的增大,当保存到最后,j的值就是最后的最大长度了;
else{
for(int k = ; k < j; k++)
{
if(a[i] < b[k]){
b[k] = a[i];
break;
}
}
}
}
printf("%d\n",j);
}
return ;
}AC代码二:
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int dp[];
int main()
{
int i,a,t,k,j,n,mm;
while(scanf("%d",&n)!=EOF)
{ k=;memset(dp,,sizeof(dp));mm=;
cin>>dp[];
for(i=;i<n;i++)
{
scanf("%d",&a);
if(a<dp[])
dp[]=a;
else if(a>dp[k-])
dp[k++]=a;
else
{
for(j=;j<k;j++)
{
if(a<dp[j] && a>dp[j-])
{dp[j]=a;break;}
else if(a<dp[j])
break;
}
}
}
cout<<k<<endl;
}
return ; }超时的代码:
#include<stdio.h>
#include<string.h>
//int b[100010]={0};
int main()
{
int a[],b[];
int i,j,n,t,max;
while(scanf("%d",&t)!=EOF)
{max=;
memset(b,,sizeof(b));
scanf("%d",&a[]);
for(i=;i<t;i++)
{
scanf("%d",&a[i]);
for(j=;j<i;j++)
if(a[i]>a[j] && b[j]+>b[i])
b[i]++;
// printf("%d ",b[i]);
if(b[i]>max)
max=b[i];
}
/*for(i=0;i<t;i++)
{if(b[i]>max)
max=b[i];
}*/
printf("%d\n",max+);
}
return ;
}
最新文章
- erlang 虚机crash
- c语言中遇到“警告: the `gets&#39; function is dangerous and should not be used.”的解决办法
- Linux进程管理、任务管理
- GDC2016 执着于光影表现的【全境封锁】的开放世界渲染
- JadClipse eclipse反编译插件
- cocos2d-x使用ant批量打包
- 借网上盛传2000w记录介绍多进程处理
- 转 Web APi之认证(Authentication)两种实现方式【二】(十三)
- Missing Number ——LeetCode
- JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
- Organic Solar Cells - Theory and Practice
- Hibernate介绍和入门案例
- 云计算之路-阿里云上:docker swarm 集群再次出现故障
- java第7次作业
- web页面加载、解析、渲染过程
- BZOJ 2277 Poi2011 Strongbox
- java 面向对象基本知识
- 多线程——newCachedThreadPool线程池
- Linux变量及运算
- iOS开发-CocoaPods实战
热门文章
- Android遍历获取指定目录的文件(转)
- 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍
- 【Docker】常用命令
- Knockout自定义绑定my97datepicker
- tomcat7.0.27的bio,nio.apr高级运行模式(转)
- Linux 文件系统的目录定义
- mariadb多实例搭建
- 【laravel5.4】PHP5.6+ 调用命名空间下类方法、属性和对象
- 获取网站资源 getResourceAsStream
- python学习笔记011——内置函数pow()