最长上升子序列
来源:互联网 发布:振华重工 知乎 编辑:程序博客网 时间:2024/06/06 06:45
今天参加北航的夏令营,推免生的一道上机考试题目:最长上升子序列,晚上看了一下题解,写了一下代码。
总结程序思路:
用栈的路:每次取得栈顶的元素和读到的元素作比较,如果大于,入栈;如果小于,二分查找栈中比他大的第一个元素,替换他。
最大长度是最后模拟栈的元素的个数。
代码如下:
#include <stdio.h>int i,j,n,s,t,a[10000001];int main(){scanf("%d",&n);a[0]=-100000;for(i=0;i<n;i++){scanf("%d",&t);if(t>a[s]) a[++s]=t;else{int l=1,r=s,m;while(l<=r){m=(r+l)/2;if(t>a[m]) l=m+1;else r=m-1;}a[l]=t;}}printf("%d\n",s);return 0;}
0 0
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- 最长上升子序列
- PHP几个防SQL注入攻击自带函数区别
- python之string中的join()与split()函数
- H.264视频编码基本知识
- iOS UI常用控件
- wins和ubuntu系统上搭建个人博客环境(wordpress)
- 最长上升子序列
- 3gp文件格式研究
- RAFT 与PAXOS区别
- 旋转的魔方-3D
- 690C2Brain Network (medium)
- 提高项目30.6-删除字符串前面的空格
- [2D图形处理]简易Alpha混合算法
- Laravel请求和输入
- 关于timeSetEvent的精确度缺陷分析_备份以防后续使用到时作为参考