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

专题三_穷举vs暴搜vs深搜vs回溯vs剪枝_全排列

dfs解决 全排列&子集

1.全排列

link:46. 全排列 - 力扣(LeetCode)

全局变量+回溯

code

class Solution {
public:vector<vector<int>> ans;vector<int> cur;vector<bool> used;vector<vector<int>> permute(vector<int>& nums) {// 暴力枚举used = vector<bool>(nums.size(), false);dfs(nums);return ans;}void dfs(vector<int>& nums){   // 出口if(cur.size() == nums.size()){ans.push_back(cur);return;}// 主体for(int i = 0; i < nums.size(); i++){if(used[i]) continue; // 剪枝cur.push_back(nums[i]);used[i] = true;dfs(nums);used[i] = false;cur.pop_back(); // 回溯}}
};

2.子集

link:78. 子集 - 力扣(LeetCode)

code

class Solution {
public:vector<vector<int>> ans;vector<int> cur;vector<vector<int>> subsets(vector<int>& nums) {dfs(nums, 0);return ans;}void dfs(vector<int>& nums, int idx)// idx表示这次选择取舍的下标{// 出口if(idx >= nums.size()){ans.push_back(cur);return;}// 主体//      要了cur.push_back(nums[idx]);dfs(nums, idx + 1);cur.pop_back();// 回溯//      不要dfs(nums, idx + 1);}
};

http://www.lryc.cn/news/525574.html

相关文章:

  • 【IEEE Fellow 主讲报告| EI检索稳定】第五届机器学习与智能系统工程国际学术会议(MLISE 2025)
  • 华为E9000刀箱服务器监控指标解读
  • 【LC】2544. 交替数字和
  • QT QTreeWidget控件 全面详解
  • 欧几里得算法求最小公倍数和最大公约数
  • Selenium配合Cookies实现网页免登录
  • DeepSeek R1模型解读与使用
  • Windows电脑不小心点击了关机,关机过程中如何阻止
  • CNN-GRU卷积门控循环单元时间序列预测(Matlab完整源码和数据)
  • 【吉林乡镇界】面图层shp格式arcgis数据乡镇名称和编码wgs84无偏移内容测评
  • fpga学习入门 串口rs232回环
  • 智启未来,AI筑梦科技新星”------华清远见成都中心2025冬令营圆满结束
  • 接上篇基于Alertmanager 配置钉钉告警
  • DDD - 如何设计支持快速交付的DDD技术中台
  • JAVA与数据结构-线性表
  • C++|开源日志库log4cpp和glog
  • React Context 实现全局组件注册
  • 基于AutoDL云计算平台+LLaMA-Factory训练平台微调本地大模型
  • strdup 函数
  • 2.9/Q2,Charls最新文章解读!
  • 【未完成】springboot项目实现扫码登录相关逻辑
  • html、js、css实现爱心效果
  • 【前端】Hexo 建站指南
  • OpenStack基础架构
  • 1905电影网中国地区电影数据分析(一) - 数据采集、清洗与存储
  • IPhone16 Plus 设备详情
  • 埃氏算法C++实现: 快速输出质数( 素数 )
  • 后端的config包中的常用配置
  • 基于亿坊PHP框架构建物联网解决方案的优势分析!
  • IoTDB结合Mybatis使用示例(增删查改自定义sql等)