最长上升子序列2

最长上升子序列2

时间限制:1秒        内存限制:64M

题目描述

给定一个长度为 N 的数列,求数值严格单调递增的子序列的长度最长是多少。

输入描述

第一行包含整数 N。

第二行包含 N 个整数,表示完整序列。

输出描述

输出一个整数,表示最大长度。

样例

输入

7
3 1 2 1 8 5 6

输出

4

提示

N<=1e5

−10^9≤数列中的数≤10^9

#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+2;
long long a[N],sum[N],ans; 
int main() {int n;cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}ans=1;sum[ans]=a[1];for(int i=2;i<=n;i++){if(a[i]>sum[ans]){ans++;sum[ans]=a[i];}else{int x=lower_bound(sum+1,sum+ans+1,a[i])-sum;sum[x]=a[i];}} cout<<ans<<endl;return 0;}

解题步骤:

  1. 首先,我们需要读取输入的序列长度和序列本身。
  2. 然后,我们可以使用动态规划的方法来求解最长单调递增子序列的长度。我们可以定义一个数组dp,其中dp[i]表示以第i个元素结尾的最长单调递增子序列的长度。状态转移方程为:dp[i] = max(dp[j]) + 1,其中0 <= j < i且nums[j] < nums[i]。
  3. 最后,我们输出dp数组中的最大值,即为最长单调递增子序列的长度。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wireshark数据流分析学习日记day3-从 Pcap 导出对象

从 HTTP 流量导出文件 过滤http请求 发现get请求上传了两个文件 保存即可 也可以保存网页 点击保存 改文件名为html结尾以便于访问 请谨慎使用此方法。如果从 pcap 中提取恶意 HTML 代码并在 Web 浏览器中查看它&#xff0c;则 HTML 可能会调用恶意域&#xff0c;这就是为什么…

HTML——5.表单、框架、颜色

一、表单 HTML 表单用于在网页中收集用户输入的数据&#xff0c;例如登录信息、搜索查询等。HTML 提供了一系列的表单元素&#xff0c;允许用户输入文本、选择选项、提交数据等。 <!DOCTYPE html> <html lang"en"> <head> <meta charset&q…

01.IDEA中出现Cannot resolve symbol ‘SpringApplication异常

试了很多次&#xff0c;看了这篇文章终于发现了问题。IDEA解决springboot工程中Cannot resolve symbol SpringApplication异常-CSDN博客 我存在的问题在于Maven home path有误&#xff0c;改正之后就没有问题&#xff0c;不标红了。

C语言实现快速排序算法

1. 什么是快速排序算法 快速排序的核心思想是通过分治法&#xff08;Divide and Conquer&#xff09;来实现排序。 算法的基本步骤是: 1. 选择一个基准值&#xff08;通常是数组中的某个元素&#xff09;&#xff0c;将数组分成两部分&#xff0c;使得左边的部分所有元素都小于…

RabbitMQ3.13.x之六_RabbitMQ使用场景

RabbitMQ3.13.x之六_RabbitMQ使用场景 文章目录 RabbitMQ3.13.x之六_RabbitMQ使用场景1. 为什么选择 RabbitMQ&#xff1f;1. 可互操作2. 灵活3. 可靠 2. 常见用户案例1. 服务解耦2. 远程过程调用3. 流处理4. 物联网 1. 为什么选择 RabbitMQ&#xff1f; RabbitMQ 是一个可靠且…

C语言 | Leetcode C语言题解之第8题字符串转换整数atoi

题目&#xff1a; 题解&#xff1a; int myAtoi(char * s){int i0;int out0;int pol1;int lenstrlen(s);if(len0) return 0;while(s[i] ) i; //删除空格if(s[i]-){ //判断正负pol-1;i;}else if(s[i]){pol1;i;}else{pol1;}while(s[i]!\0){if(s[i]<0||s[i]>9){ /…

算法学习(十七)规律

规律 1. 概念 模拟题目过程探索问题规律找出隐含条件 2. 解题技巧&#xff08;我的总结&#xff09; 1> 将 问题中的抽象条件 找出实际意思 题目说明实现649. Dota2 参议院题中每个议员最好表现 禁止后面最近的对方议员 或 禁止前面最远的对方议员我的提交1702. 修改后的…

Python基础教程:从入门到实践

Python&#xff0c;一种解释型、交互式、面向对象的编程语言&#xff0c;因其简洁易懂的语法和强大的功能库而广受欢迎。无论是数据分析、机器学习还是Web开发&#xff0c;Python都发挥着重要作用。本文将带你走进Python的世界&#xff0c;从基础语法开始&#xff0c;逐步深入实…

【智能算法】跳蛛优化算法(AOA)原理及实现

目录 1.背景2.算法原理2.1算法思想2.2算法过程 3.结果展示4.参考文献 1.背景 2021年&#xff0c;H Peraza-Vzquez等人受到跳蛛狩猎行为启发&#xff0c;提出了跳蛛优化算法&#xff08;Jumping Spider Optimization Algorithm&#xff0c;JSOA&#xff09;。 2.算法原理 2.1…

【Kaggle】练习赛《鲍鱼年龄预测》(上)

前言 上一篇文章&#xff0c;讲解了《肥胖风险的多类别预测》机器学习方面的文章&#xff0c;主要是多分类算法的运用&#xff0c;本文是一个回归的算法&#xff0c;本期是2024年4月份的题目《Regression with an Abalone Dataset》即《鲍鱼年龄预测》&#xff0c;在此分享高手…

C++数据结构与算法——回溯算法组合问题

C第二阶段——数据结构和算法&#xff0c;之前学过一点点数据结构&#xff0c;当时是基于Python来学习的&#xff0c;现在基于C查漏补缺&#xff0c;尤其是树的部分。这一部分计划一个月&#xff0c;主要利用代码随想录来学习&#xff0c;刷题使用力扣网站&#xff0c;不定时更…

C++ 引用和指针

C++ 中的引用(Reference)和指针(Pointer)是两种不同的概念,它们在语法上和语义上有很多不同之处,下面是它们的区别: 语法: 引用使用 & 符号声明,并且必须在初始化时绑定到一个对象上。例如:int& ref = obj;指针使用 * 符号声明,并且可以在任何时候指向一个对…

Java入门第6课

1.数据类型的自动转化 java的数据转化是容量小的部分向大的方向转&#xff0c;这个部分很简单&#xff0c;byte->short->int->long&#xff0c;char->int->long;int->double 有一些数据转化虽然是自动的&#xff0c;但是存在数据精度丢失&#xff0c;比如i…

特征增强自蒸馏卷积神经网络

目录 1.1 模型总体架构 1.2 特征增强金字塔模块 1.3 辅助分类器 1.1 模型总体架构 与自然图像相比&#xff0c;遥感场景图像地物较为复杂&#xff0c;具有类间相似度高和类内差异大的特点&#xff0c;这导致常用的网络模型难以有效学习遥感场景图像的表征特征。此外&#xf…

【ARM 嵌入式 C 入门及渐进 21 -- 内存分配相关函数malloc 与 realloc】

请阅读【嵌入式开发学习必备专栏 】 文章目录 malloc 与 reallocmallocrealloc主要差异点 malloc 与 realloc malloc 和 realloc 都是 C 语言标准库中的函数&#xff0c;用于动态内存分配。它们在使用上有明显的区别&#xff1a; malloc malloc&#xff08;Memory Allocatio…

springboot之mybatisPlus多表查询及分页查询

文章目录 一、多表查询二、mybatis-plus条件查询三、分页查询 一、多表查询 可能会用到的注解 这里的场景是&#xff0c;查询每个用户及其所有的订单。就是查询你的id号的同时&#xff0c;把你所有的历史订单信息都拉出来。 表结构这样 CREATE TABLE User ( id INT PRIMARY…

【可靠性】陷阱电荷对TDDB影响的多尺度模拟

【From Accelerated to Operating Conditions: How Trapped Charge Impacts on TDDB in SiO2 and HfO2 Stacks】 文章总结&#xff1a; 本研究深入探讨了在SiO2和HfO2介质堆叠中&#xff0c;陷阱电荷对时间依赖介电击穿&#xff08;TDDB&#xff09;现象的影响。通过引入载流子…

位运算-191. 位1的个数- 136. 只出现一次的数字

位1的个数 已解答 简单 相关标签 相关企业 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中 设置位 的个数&#xff08;也被称为汉明重量&#xff09;。 示例 1&#xff1a; 输入&#xff1a;n 11 输…

Git 术语及中英文对照

完毕&#xff01;&#xff01;感谢您的收看 ----------★★历史博文集合★★---------- 我的零基础Python教程&#xff0c;Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字…

C++从入门到精通——类的定义及类的访问限定符和封装

类的定义及类的访问限定符和封装 前言一、类的定义类的两种定义方式成员变量命名规则的建议示例 二、类的访问限定符和封装访问限定符访问限定符说明C为什么要出现访问限定符例题 封装例题 前言 类的定义是面向对象编程中的基本概念&#xff0c;它描述了一类具有相同属性和方法…