当前位置: 首页 > news >正文

【leetcode刷题日记】lc.300-最长递增子序列

目录

1.题目

2.代码


1.题目

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。

子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

 

示例 1:

输入:nums = [10,9,2,5,3,7,101,18]
输出:4
解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。

示例 2:

输入:nums = [0,1,0,3,2,3]
输出:4

示例 3:

输入:nums = [7,7,7,7,7,7,7]
输出:1

提示:

  • 1 <= nums.length <= 2500
  • -104 <= nums[i] <= 104

进阶:

  • 你能将算法的时间复杂度降低到 O(n log(n)) 吗?

2.代码

class Solution {
public:int binarySearch(vector<int>& a,int tar){int l=0;int r=a.size();int mid;while(l<r){mid = (l+r)/2;if(a[mid]<tar){l=mid+1;}else{r=mid;}}return l;}int lengthOfLIS(vector<int>& nums) {int n=nums.size();vector<int> ans;ans.push_back(nums[0]);for(int i=1;i<n;i++){int pos = binarySearch(ans,nums[i]);if(pos==ans.size()){ans.push_back(nums[i]);}elseans[pos] = nums[i];}return ans.size();}
};

相关文章:

  • 【WTYOLO】使用GPU训练YOLO模型教程记录
  • javaSE.队列
  • UE5的BumpOffset节点
  • 【英语语法】词法---形容词
  • 思维题专题
  • Agent安装-Beszel​​ 轻量级服务器监控平台
  • (4)Vue的生命周期详细过程
  • Python赋能去中心化电子商务平台:重构交易生态的新未来
  • 嵌入式人工智能应用-第三章 opencv操作 4 灰度处理
  • C++11特性补充
  • 图论基础:图存+记忆化搜索
  • 相得益彰 — 基于 GraphRAG 事理图谱驱动的实时金融行情新闻资讯洞察
  • Linux 常用指令用户手册
  • 字节跳动发布UI-TARS-1.5,入门AI就来近屿智能
  • 大数据学习栈记——MapReduce技术
  • 【JAVA EE初阶】多线程(1)
  • 基于SpringBoot+Vue实现的旅游景点预约平台功能一
  • [密码学实战]密码服务平台部署架构详解与学习路线
  • QT+CDB进行debug调试无法查看QString等qt相关变量值问题的修复
  • AI——神经网络以及TensorFlow使用
  • 国家开发银行原副行长李吉平一审获刑14年
  • 女子“伸腿阻拦高铁关门”被行拘,事件追踪:当时发生了什么?
  • AI时代教育如何变革?上海首批 “标准化家长学校”出炉
  • 2025扬州“烟花三月”国际经贸旅游节开幕,37个重大项目现场签约
  • 杭州挂牌3宗住宅用地,起始总价约30.04亿元
  • 恒安集团创始人许连捷逝世,享年73岁