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

回溯专题:子集/全排列问题

目录

题目链接

子集问题思路分析

代码

全排列问题思路分析

总结


题目链接

78. 子集 - 力扣(LeetCode)

46. 全排列 - 力扣(LeetCode)

这两道题都是来源于力扣hot 解题思路其实大同小异

子集问题思路分析

重点关注:1.引入全局变量path,ret的好处(大大简化函数头的设计)

                  2.如何恢复现场

                  3.函数递归的出口

代码

class Solution {List<List<Integer>> ret=new ArrayList<>();List<Integer> path=new ArrayList<>();public List<List<Integer>> subsets(int[] nums) {dfs(nums,0);return ret;  }public void dfs(int[] nums,int i){if(i==nums.length){ret.add(new ArrayList(path));//这里不用恢复现场return;}//如果选了path.add(nums[i]);dfs(nums,i+1);//回溯 恢复现场path.remove(path.size()-1);//如果不选dfs(nums,i+1);}
}

全排列问题思路分析

重点关注:1.引入全局变量path,ret的好处(大大简化函数头的设计)

                  2.如何恢复现场

                  3.函数递归的出口

                  4.以及如何进行剪枝操作的(主要是check数组在起作用)

代码

class Solution {List<List<Integer>> ret=new ArrayList<>();List<Integer> path=new ArrayList<>();boolean[] check;public List<List<Integer>> permute(int[] nums) {check=new boolean[nums.length];dfs(nums);return ret;}public void dfs(int[] nums){//递归出口if(nums.length==path.size()){ret.add(new ArrayList(path));//原本这里回溯是要恢复现场的,但不在这里进行回溯恢复现场的操作//回溯操作:1.去掉path最后一个元素  2.修改check数组return;}//关注某个子问题在干什么 书写函数体for(int i=0;i<nums.length;i++){if(check[i]==false){path.add(nums[i]);check[i]=true;dfs(nums);//在这里进行恢复现场的操作check[i]=false;path.remove(path.size()-1);}}}
}

总结

这两道题在我看来其实没什么差别,如果可以列举出所有情况(即画出决策树),就可以大胆地使用深度优先遍历

http://www.dtcms.com/a/550772.html

相关文章:

  • 国产固态硬盘趋势下,天硕工业级SSD接口指南赋能高效部署
  • HOSVD(高阶奇异值分解):高维数据的“解剖术”
  • 用rp怎么做网站导航菜单wordpress文章插广告
  • 怎么做公司网站优化网站建成
  • 智源研究院发布悟界 Emu3.5,开启多模态世界大模型新纪元
  • RAG_向量
  • 如何做网站收录求个a站
  • 南山建网站公司公司网站建站模板模板
  • 光伏项目如何高效施工?
  • 万年历网站做移动互联网网站建设
  • ROS2使用pixi在win10中的安装
  • 没后台的网站怎么做优化专业网站优化哪家好
  • 绍兴建设网站深圳市城乡和建设局网站首页
  • 做网站月薪10万温州网页制作
  • RTNETLINK answers: File exists问题分析
  • 网站建设 前沿文章iis 网站没有上传权限
  • 怎么用服务器做局域网网站网站推广排名收费
  • 镇江久一信息技术有限公司天津seo网站排名优化公司
  • Origin绘制美观的极坐标面积图
  • 自适应网站价格农产品网站开发技术方案与设施
  • 网站程序员网站建设多少钱鞋
  • 牡丹江市建设行业协会网站屯昌第三方建站哪家好
  • 做市场调查分析的网站下载软件大全
  • 申请一个网站天河网站建设推广
  • 【深度学习3】线性回归的简洁实现
  • 招商网站建设哪家好济南中桥信息做的小语种网站怎么样
  • 可视化建网站网站关键词和描述
  • 无人机巡护青海湖,AI如何守护西部生态与能源安全?
  • wordpress短代码可视化常州seo网络推广
  • 网站免费做app专门做萝莉视频网站