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

北京网站建设与维护wordpress默认分类

北京网站建设与维护,wordpress默认分类,wordpress默认登陆地址,免费做网站哪里有LCR 079. 子集 - 力扣&#xff08;LeetCode&#xff09; 方法一 1. 决策树&#xff1a;对于决策树&#xff0c;思考的角度不同&#xff0c;画出的决策树也会不同&#xff0c;这道题可以从两个角度来画决策树。 2. 考虑全局变量的使用&#xff1a; 使用全局变量 List<List&…

LCR 079. 子集 - 力扣(LeetCode)

方法一 

1. 决策树:对于决策树,思考的角度不同,画出的决策树也会不同,这道题可以从两个角度来画决策树。

2. 考虑全局变量的使用:

使用全局变量 List<List<Integer>> ret 来存子集;

使用全局变量 List<Integer> path 来存递归过程中的值;

3. 关注递归本身,回溯,剪枝,递归出口:

1. 递归本身:使用方法 dfs(nums,i),nums为参数数组,i 表示当前进行选择或者不选择的目标数是 nums[i],当选择目标数的时候,path + nums[i] 然后递归下一轮,不选择的时候,直接递归下一轮,dfs(nums,i+1);

2. 剪枝:从决策树可以看出,这道题是不需要到剪枝环节的;

3. 回溯:当决策树中的节点对目标数进行判断完成后,需要进行 "恢复现场" 操作,也就是需要将当前的全局变量 path 的最后一个元素去掉,从而恢复现场,可以按下图来理解;

4. 递归出口:当 dfs(nums,i) 中 i 的值 == nums.size 的时候,说明已经超出数组的范围了,此时就可以返回了;

代码实现 

class Solution {List<List<Integer>> ret;List<Integer> path;public List<List<Integer>> subsets(int[] nums) {ret = new ArrayList<>();path = new ArrayList<>();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);}
}

方法二 

 第二种决策树:这种思考方式,就是从选择多少个元素来考虑,但要求的是从数组 i 定位从小到大进行选择,在选择完前 n 个元素后,继续选择 n+1 个元素时,只能是选择当前 i 之后对应的元素,也就是数组 [1,2,3] 当选择到 2 的时候,再进行选择时,就只能选 3 了,不能选 1 ,这样是为了避免重复情况出现;

2. 全局变量的使用与第一种方法一样; 

3. 关注递归本身,回溯,剪枝,递归出口:

1. 观察决策树,可以发现每一个节点都作为子集,也就是每次进入都可以作为一个结果然后存进全局变量 ret 中;

2. dfs(nums[],i) 此处的 i 可以理解为当前的 path 要从 i 开始进行选择;

3. 跟第一种情况相同,不需要进行剪枝;

4. 回溯也跟第一种情况相同,将最后一个元素去掉;

5. 并且要注意,在这种情况下,是没有递归出口的,因为每个节点都作为子集,在 for 循环中循环结束后就会自动返回;

代码实现 

class Solution {List<List<Integer>> ret;List<Integer> path;public List<List<Integer>> subsets(int[] nums) {ret = new ArrayList<>();path = new ArrayList<>();dfs(nums,0);return ret;}public void dfs(int[] nums,int i){// 每个节点都是子集,进入就添加到 ret 中ret.add(new ArrayList(path));for(int j=i;j<nums.length;j++){     // 从节点 i 开始path.add(nums[j]);dfs(nums,j+1);      // 回溯,恢复现场path.remove(path.size()-1);}}
}

http://www.yayakq.cn/news/825504/

相关文章:

  • 自己怎么做网站网页安徽省住房和城乡建设厅网站查询
  • 建设网站需要专业用asp.net做的购物网站
  • 企业为什么要建立自己的网站wordpress 搜索标签页
  • 设计好的网站推荐晚上睡不着网站2021免费
  • 广州企业建站系统模板网页微博如何退出登录
  • 南通企业建站模板河北省建设工程质监站网站
  • 不属于网站建设方式的是小网站大全
  • 怎样用自己的空间做网站外贸怎样找到精准客户
  • 怎么做整人的网站WordPress开启自带redis
  • 免费源码html网站广州建设教育网站
  • 珠海工商年检到哪个网站做深圳网站制作的公司嘉兴
  • 广州seo网站推广技巧深圳微商城网站设计多少钱
  • 陕西做教学成果网站的公司哈尔滨优化网站排名
  • 网站开发用什么网站辽宁建设资质申报网站
  • 网站建设的图片叠加步骤过程广东网站建设专业公司哪家好
  • 大图模板网站农村未来10大暴利行业
  • 电商seo是指哈尔滨seo推广
  • 网站建设 sheji021农资网络销售平台
  • 黑河城乡建设局网站福州英文网站建设
  • 做网站怎么添加点击事件企业管理体系包含哪些内容
  • 重庆网站建设 渝icpwordpress返回顶部插件
  • 临沂网站建站专业公司品牌营销策划方案怎么做才好
  • 企业网站建设标准一个数据库两个网站wordpress登陆
  • 公司网站改版需要怎么做删除wordpress标志
  • 江西建设工程信息网站建筑模拟2015
  • 永久免费网站服务器谁能给个网址啊
  • 织梦 修改网站logo浙江高端建设网站
  • 做的比较炫的网站淮南房地产网站建设网站
  • 古风网站建设模板广州制作外贸网站
  • 电子商务网站平台不包括免费网站大全