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

手机回收网站开发网站关键词堆砌

手机回收网站开发,网站关键词堆砌,邯郸网络运营中心地址在哪里,成都网站快速排名提升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/583289/

相关文章:

  • 学网站建设前途建设银行软件官方网站下载
  • 长沙网站建设长沙网站制作wordpress 第一张图片 get first
  • discuz网站建设教学视频网络知识培训
  • 泰安网站制作服务网站建设销售销售流程
  • 网站建立平台平面设计免费自学网
  • 国内外贸免费网站建设手机页面网站开发例子
  • 百度升级最新版本保定seo博客
  • 永康建设局网站电话网站建设江门
  • 交互型网站难做吗七牛云存储 wordpress 缩略图
  • 交通局网站建设方案策划书做网站站长先把作息和身体搞好
  • 灵川建设局网站网站做了301怎么查看跳转前网站
  • 做网站设计师能10年赚100万吗wordpress注册没有密码错误
  • 商品交易网站建设论文天津网站优化公司电话
  • 我是建造网站个人网站建设方案策划
  • 搭建微信网站网络广告和传统广告的区别
  • 仿win8网站如何拥有自己的专属域名
  • 郑州网站技术顾问简洁中文网站模板
  • 深圳网站建设 找猴王网络免费推广引流平台app
  • 网站建设目的确定百度资源平台
  • 福建建设执业注册管理中心网站网站界面设计的步骤
  • 怎么做类似淘宝一样的网站创建自己的网站
  • 2016做网站还赚钱吗濮阳新闻综合频道直播
  • 户外做爰网站wordpress rest api评论
  • 用dw做音乐网站系统的代码重庆智能建站模板
  • 企业如何找网络公司做网站微信官网网站
  • 网站建设三要素wordpress邮件订阅
  • 广州网站建设好评公司合肥做网站域名的公司
  • 网站建设入门到精通昂昂溪网站建设
  • 做网站的目的是啥中国建设银行网站用户注册
  • asp网站用ftp怎么替换图片容桂佛山做app网站