单调递增子序列(二)

时间限制: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 ;
}

最新文章

  1. erlang 虚机crash
  2. c语言中遇到“警告: the `gets&#39; function is dangerous and should not be used.”的解决办法
  3. Linux进程管理、任务管理
  4. GDC2016 执着于光影表现的【全境封锁】的开放世界渲染
  5. JadClipse eclipse反编译插件
  6. cocos2d-x使用ant批量打包
  7. 借网上盛传2000w记录介绍多进程处理
  8. 转 Web APi之认证(Authentication)两种实现方式【二】(十三)
  9. Missing Number ——LeetCode
  10. JNI调用native方法出现 java.lang.UnsatisfiedLinkError: XXXclass.XXXmethod()异常的解决办法
  11. Organic Solar Cells - Theory and Practice
  12. Hibernate介绍和入门案例
  13. 云计算之路-阿里云上:docker swarm 集群再次出现故障
  14. java第7次作业
  15. web页面加载、解析、渲染过程
  16. BZOJ 2277 Poi2011 Strongbox
  17. java 面向对象基本知识
  18. 多线程——newCachedThreadPool线程池
  19. Linux变量及运算
  20. iOS开发-CocoaPods实战

热门文章

  1. Android遍历获取指定目录的文件(转)
  2. 自己动手写处理器之第二阶段(2)——Verilog HDL简单介绍
  3. 【Docker】常用命令
  4. Knockout自定义绑定my97datepicker
  5. tomcat7.0.27的bio,nio.apr高级运行模式(转)
  6. Linux 文件系统的目录定义
  7. mariadb多实例搭建
  8. 【laravel5.4】PHP5.6+ 调用命名空间下类方法、属性和对象
  9. 获取网站资源 getResourceAsStream
  10. python学习笔记011——内置函数pow()