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

重练算法(代码随想录版) day25 - 回溯part4

今日刷题量:3
当前刷题总量:107
Easy: 53
Mid: 52
Hard: 2

Day25
常用思想
1.去重如果需要同层去重,可以借助unordered_set记录本层元素是否重复使用,如果范围不大,可以用数组来做哈希提高效率

2.全排列问题也借助used数组记录path里哪些元素用过了,因为每一层除了当前元素的所有其他元素都可以被选择

3.全排列还可以用原地swap法:通过把不同的元素交换到当前固定的位置,再递归生成后续排列,最后再交换回去恢复状态。
核心代码如下,x代表当前固定的元素,分别和其他位置去交换:

点击查看代码
for (int i = x; i < nums.size(); i++) {swap(nums[i], nums[x]);backtrack(nums, x + 1);swap(nums[i], nums[x]);}

4.全排列去重的本质是避免“同一层”重复选择相同数字,而在每一层使用 unordered_set 可以精确控制这一点。
5.set 保证“本层不能重复”,递归保证“不同层可以重复”。

练习题目
491.非递减子序列(mid):https://leetcode.cn/problems/non-decreasing-subsequences/
46.全排列(mid):https://leetcode.cn/problems/permutations/
47.全排列Ⅱ(mid):https://leetcode.cn/problems/permutations-ii/description/

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

相关文章:

  • 仓颉语言相机拍照功能搭建深度解析
  • 效果-擦除阻塞调色文本
  • 2025广东咖啡奶茶开店指导培训公司最新top5口碑榜!饮品行业全产业链服务商权威榜单发布,赋能创业者成功启航
  • 代码随想录Day25_回溯5_全排列
  • CSP-S NOIP 2025 游记
  • 深入解析:MyBatis 源码深度解析:从 Spring Boot 实战到底层原理
  • 英语_阅读_pygg bank_待读
  • mac安装pr premiere pro破解版,pr转文字转录文本卡死
  • 论文开题报告模板详解:轻松掌握撰写技巧,助你开启学术之路
  • 2025年中国数控机床公司综合实力TOP10排行
  • 泣かないで、またおいで——NOIP2025游记,以及 OI 回忆录。
  • Qt系统托盘与可执行程序图标
  • 深入解析:IHR 2025 | 移远通信携Robrain AI解决方案亮相,开启机器人全感官交互新纪元
  • 2025-11-29
  • 2025 哈尔滨轴承企业品牌知名度调研排名
  • 接口测试:JMeter(三)
  • 散列表
  • 腾讯TBDS和Cloudera Data AI CMP 比较的缺陷在哪里?
  • python获取绝对路径复制文件
  • Task状态
  • OI退役记
  • 实用指南:算法<C++>——二分查找
  • 2025 哈尔滨轴承品牌价值TOP10榜单
  • AI革命中的开源NLP工具与技术实践
  • Python 潮流周刊#129:Pydantic 还能做些什么?
  • 【论术】: 响应式布局——flex:1与calc的区别
  • Git 误操作恢复指南:回退`reset --hard` 和 `push -f`
  • 详细介绍:算法 - 差分
  • 《程序员修炼之道:从小工到专家》观后感第六篇
  • Day6-20251129