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

代码随想录一刷记录Day25——leetcode491.递增子序列

前言

之前就有刷代码随想录,但奈何总是三天打鱼两天晒网,而且刷的也很囫囵吞枣,于是乎决定参加代码随想录训练营,准备精刷一遍,希望自己能坚持下去,结营后自己的算法水平能更上一个level,冲ing!

leetcode491.递增子序列

题目链接leetcode491.递增子序列

思路

本题与昨天做的90.子集II看着(又是不能重复,又是收集每个子集,看着相似)只是多了递增的需求,实则区别较大。
1、在90.子集II 中是通过排序,再加一个标记数组来达到去重的目的。而本题求自增子序列,是不能对原数组进行排序的,排完序的数组都是自增子序列了(例如{ 4 6 7 6 }排序完{ 4 6 6 7}很明显是一个递增子集,但是在{ 4 6 7 6 }中是根本找不到这个递增子集的)。
2、终止条件,本题要求递增子序列大小至少为2,所以终止条件为 当 path.size() > 1 时, result.push_back(path);收集
3、单层搜索逻辑,本题使用set来对本层元素进行去重。本题递归函数上面的uset.insert(nums[i]);,下面没有对应的pop之类的操作,这也是需要注意的点,unordered_set uset; 是记录本层元素是否重复使用,新的一层uset都会重新定义(清空),uset只负责本层!

代码

classSolution{private:vector<vector<int>>result;vector<int>path;voidbacktracking(vector<int>&nums,intstartIndex){if(path.size()>1){result.push_back(path);// 注意这里不要加return,要取树上的节点}unordered_set<int>uset;// 使用set对本层元素进行去重for(inti=startIndex;i<nums.size();i++){if((!path.empty()&&nums[i]<path.back())||uset.find(nums[i])!=uset.end()){continue;}uset.insert(nums[i]);// 记录这个元素在本层用过了,本层后面不能再用了path.push_back(nums[i]);backtracking(nums,i+1);path.pop_back();}}public:vector<vector<int>>findSubsequences(vector<int>&nums){result.clear();path.clear();backtracking(nums,0);returnresult;}};

leetcode

题目链接

思路

代码

leetcode

题目链接

思路

代码

http://www.jsqmd.com/news/626291/

相关文章:

  • 美国能源部(DOE)发布“关键矿产与材料加速器”资助机会
  • Docker化多服务共存:Nginx 443 SNI 实现多 HTTPS 站点与加密通信无缝部署
  • 初步学习c语言指针的一些简单理解
  • 告别调参玄学:手把手教你用TransNeXt-Tiny在ImageNet上复现84.0%的准确率
  • atomic原子操作实现无锁队列
  • 2026年OpenClaw怎么搭建?阿里云6分钟新手部署OpenClaw,千问大模型安装指南
  • NGLedFlasher:嵌入式多LED非阻塞时序控制库
  • 材料冶金是“天坑”?就业超99%,深造超70%,北京科技大学王牌专业正被新能源巨头疯抢!
  • 2026单位复印机租赁服务商盘点:品牌打印机租赁/学校复印机租赁/学校打印机租赁/彩色复印机租赁/选择指南 - 优质品牌商家
  • TA8428双通道H桥驱动芯片硬件设计与mbed底层驱动实现
  • ComfyUI面部修复FaceDetailer参数调优实战
  • Android显示机制深度解析:Surface、SurfaceFlinger与Choreographer如何协同工作
  • MES / WMS / AGV 交互时序图及生产管理模块界面设计清单
  • 当大模型开始控制设备:我是怎么理解 Agent 架构的勤
  • Arduino嵌入式信号处理库:轻量级LPF/HPF/积分/微分滤波器
  • AI代理受限于人类设计的工具边界和孤立体
  • 揭秘MySQL索引分类档
  • 【2026年阿里巴巴集团暑期实习- 4月11日-算法岗-第二题- 凑对】(题目+思路+JavaC++Python解析+在线测试)
  • 计算机毕业设计:Python智慧空气监测与污染物预测系统 Django框架 可视化 数据分析 Prophet时间序列 大数据 大模型 深度学习(建议收藏)✅
  • 2026年怎么部署OpenClaw?腾讯云9分钟小白部署OpenClaw,千问大模型集成流程
  • mbed平台USB主机协议栈实现与MAX3421E驱动解析
  • TheengsDecoder:轻量级BLE广告数据解码库
  • LDC1612电感数字转换器原理与嵌入式实战指南
  • C++ 项目部署教程(标准生产环境架构:本地编译 + Jenkins云端部署)
  • 蓝桥云课一分钟-星界战纪-Stellar Combat-make
  • 【SITS2026闭门报告首发】:为什么89%的AI工程团队在DevSecOps中漏掉了“推理时安全上下文”这一致命断层?
  • MicroOcppMongoose:嵌入式充电桩的轻量级OCPP WebSocket适配器
  • CiString:嵌入式C++零开销大小写不敏感字符串比较
  • 创始人怒批团队没魄力:要砸 2 亿年薪招首席科学家,全面反攻,把宇树所有客户等统统抢过来
  • 别再让电费偷偷溜走!手把手教你用数字时间开关给热水器/空调定时(附避坑指南)