最长上升子序列
来源:互联网 发布:淘宝奇葩差评口红 编辑:程序博客网 时间:2024/06/18 05:37
你的任务,就是对于给定的序列,求出最长上升子序列的长度。
71 7 3 5 9 4 8
4
翻译自 Northeastern Europe 2002, Far-Eastern Subregion 的比赛试题
题目描述
输入一个数组,判断出里面的最长上升子序列,并输出长度。
解题思路
这个题感觉有好几种思路,可以从前面向后搜索,也可以从后往前搜索。
对于b(1)来说,由于它是第一个数,所以当从b(n)开始查找时,只存在长度为1的上升子序列;
从b(i)开始,此时最长上升子序列应该在b(i+1),b(i+2),.....,b(n)中,找到一个比b(i)大且最长的上升子序列,作为它的后继。
源代码
#include<bits/stdc++.h>const int MAXN=1000;int b[MAXN],aMaxlen[MAXN+10];int main(int argc, char *argv[]){ int N; scanf("%d",&N); for (int i=1;i<=N;i++) scanf("%d",&b[i]); aMaxlen[1]=1; for (int i=2;i<=N;i++) { int nTmp=0; for (int j=1;j<i;j++) if(b[i]>b[j]) { if(nTmp<aMaxlen[j]) nTmp=aMaxlen[j]; } aMaxlen[i]=nTmp+1; } int nMax=-1; for (int i=1;i<=N;i++) if(nMax<aMaxlen[i]) nMax=aMaxlen[i]; printf("%d\n",nMax); return 0;}
0 0
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- selenium 工作原理
- MIT自然语言处理第一讲:简介和概述(第二部分)
- HTML5 移动Web App阅读器-2(技术点讲解)
- Jquery如何删除table里面checkbox选中的多个行
- 漫谈设计模式之单例模式(Singleton)
- 最长上升子序列
- Ubuntu/Linux编译Opencv3.2(包括使用)//有问题欢迎留言交流
- [JSOI2008][BZOJ1014][JZOJ1716]火星人
- Docker入门实战
- 第一篇博客测试
- POJ 2255(已知前中序遍历 还原树)
- C是否是素数
- 使用filter过滤xss攻击
- 工厂设计模式