最长递增子序列 O nlgn时间复杂度

news/2024/7/5 4:05:55
[编程题]最长递增子序列

对于一个数字序列,请设计一个复杂度为O(nlogn)的算法,返回该序列的最长上升子序列的长度,这里的子序列定义为这样一个序列U1,U2...,其中Ui < Ui+1,且A[Ui] < A[Ui+1]。

给定一个数字序列A及序列的长度n,请返回最长上升子序列的长度。

测试样例:
[2,1,4,3,1,5,6],7
返回:4
class AscentSequence {
public:
    int findLongest(vector<int> A, int n) {
        // write code here
    	int B[1000];
        int left, right, mid, len;
        len=0;
        
   	 	B[0]=A[0]; 
    	for(int i=1;i<n;i++){
            left=0,right=len;
            while(left<=right){
                mid=(left+right)/2;
                if(B[mid]<A[i]) 
                    left=mid+1; 
                else 
                    right=mid-1;
            }
            B[left]=A[i]; 
            if(left>len) 
                len++; 
        }
        return len+1;
	}
};

http://www.niftyadmin.cn/n/4121163.html

相关文章

linux下的软路由的配置

&#xff08;1&#xff09;实验环境的搭建&#xff0c;IP参数的配置。&#xff08;2&#xff09;在linux服务器下。#cat /proc/sys/net/ipv4/ip_forward0(查看是否开启路由功能&#xff0c;如果是0就是没有开启)将0改为1#echo "1" > /proc/sys/net/ipv4/ip_forwar…

第九章、vim程序编辑器

9.1 vi与vim 9.1.1 为何要学vim 所有的 Unix Like 系统都会内置 vi 文书编辑器&#xff0c;其他的文书编辑器则不一定会存在&#xff1b; 很多个别软件的编辑接口都会主动调用 vi &#xff08;例如未来会谈到的 crontab, visudo, edquota等指令&#xff09;&#xff1b; vi…

android ubuntu9.10 源码的编译 Eclipse工程 Contacts编译 应用加载

第一部分&#xff1a;编译环境的安装和编译 1. 安装ubuntu9.10系统 2. 把源码传到ubuntu&#xff0c;并解压 3. 安装编译环境 A. sudo apt-get install bison B. sudo apt-get install vim c. 解决&#xff1a;安装JDK 5.0 1&#xff09;&#xff1a;根据官方文档里…

MaxDos v5.8s 网刻图文教程

MaxDos v5.8s 网刻图文教程&#xff08;傻瓜型&#xff09; 本教程是基于MAXDOS环境所介绍网刻的&#xff0c;全中文傻瓜式。 客户端软件maxdos5.8&#xff0c;服务器ghostsvr8.3 一、 服务器端设置 1、 将本地连接IP地址设置为10.1.1.1&#xff0c;子网掩码设置为:255.0.0.…

Android源码中添加 修改应用

第一部分&#xff1a;添加一个新的应用 1. 在和系统相同版本的SDK目录下开发自己的android应用 2. 把开发的android工程放到源码的packages/apps/目录下 3. 在工程目录下添加Android.mk文件&#xff0c;修改LOCAL_PACKAGE_NAME :test001 把工程名指定为自己的工程名&#xff0c…

斯坦福大学iOS应用开发教程学习笔记(第二课) 计算器实现(mvc实战)

整个项目下载&#xff1a;https://github.com/junxianhu/Calculator&#xff0c;觉得有帮助的可以点击Star啊&#xff0c;谢谢啦。 界面不太好看 &#xff1d;&#xff1d;&#xff01; 主要的文件目录如下&#xff1a; 贴几个关键的文件&#xff0c;其实注视都很详细&#…

NDK mk 文件分析

通过分析一个例子来了解NDK makefile文件的生成。例子"hello JNI" &#xff0c;由NDK提供的例子 A. 目录结构 jni目录&#xff1a;包含本地源文件&#xff0c;eg&#xff1a;jni/hello-jni.c&#xff0c;该源文件实现了一个简单的共享库&#xff0c;实现了一个简单的…

哈佛告诉你

陈祖芬 哈佛某教授对学生说&#xff0c;你学我这门课&#xff0c;你就一天只能睡两小时。学生想&#xff0c;那么&#xff0c;我学四门课&#xff0c;我就没有睡眠时间了&#xff0c;我就得倒贴睡眠时间了。 于是—— 哈佛产的诺贝尔奖得主有33位。 哈佛产的美国总统有7位。…