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

郑州网站推广 汉狮网络太原建站模板系统

郑州网站推广 汉狮网络,太原建站模板系统,外贸网站建设评价,自助网站推广系统这道题之前刷代码随想录的时候做过,现在又给忘完了,不过看了下自己当时写的博客,一下子就明白过来了,这道题收集的是组合结果,元素的排列顺序不重要,这与上一题46.全排列是不一样的,我们对比一下…


这道题之前刷代码随想录的时候做过,现在又给忘完了,不过看了下自己当时写的博客,一下子就明白过来了,这道题收集的是组合结果,元素的排列顺序不重要,这与上一题46.全排列是不一样的,我们对比一下可以发现,全排列是在每一个叶子节点(触发递归终止条件)才收集结果,而对于这道题而言,我们并不是只有在叶子节点才收获结果,事实上,每向path数组中添加一个新的元素,我们就可以收获一次结果,那么我们怎么知道当前添加的这个元素在之前没有被统计过呢?我们需要借助一个变量start_index,在递归函数的主体部分,我们直接从下标为start_index的元素开始遍历,而start_index左侧的元素已经被统计过,不再考虑。
例如,对于输入[1, 2, 3]
我们先统计包含1的所有子集[1], [1, 2], [1, 2, 3], [1, 3]后,start_index应当更新为1,开始记录所有包含2的子集,由于元素1的下标为0,在后续的统计中不会被重复添加。
这样,我们在记录完所有子集后,一定不会重复,考虑到空集也是符合条件的子集,因此我们需要在递归函数彻底调用结束后及时添加一个空列表进去,然后再返回。

class Solution {
public:vector<vector<int>> result;   //用于保存所有的子集vector<int> path;     //记录每个子集vector<vector<int>> subsets(vector<int>& nums) {backtracking(nums, 0);result.push_back({});   //添加空集return result;}void backtracking(vector<int>& nums, int start_index){//递归终止条件if(start_index >= nums.size())   //索引超出范围return ;//递归主体//start_index之前的元素已经添加过,不再考虑for(int i = start_index; i < nums.size(); i++){path.emplace_back(nums[i]);result.emplace_back(path);backtracking(nums, i + 1);path.pop_back();}}
};
http://www.dtcms.com/a/464210.html

相关文章:

  • 国内最大的自建站平台网站怎么建
  • 手表网站错误怎么办做360网站首页软件
  • 自己做的网站怎么接入数据库深圳网站制作哪里济南兴田德润简介
  • 搬瓦工可以长期做网站网站建设推广信息
  • 泰州网站制作专业网页制作与网站开发从入门到精通 下载
  • 网站建设松江公司wordpress multisite
  • 网站开发行业资讯wap网站什么意思
  • 淘客做网站还是做app腾讯云远程安装wordpress
  • 新手建设网站wdcp wordpress伪静态
  • phpcms网站logo阿里域名注册网站
  • 义乌网站搭建网站备案通过之后
  • python做网站和php北京建网站服务
  • 免费网站建设基础步骤个人备案企业网站
  • 学校网站的常规化建设西安英文网站制作
  • 备案 网站名称涉及到行业公司做网站需要哪些资料
  • 万网有域名怎么建网站易商官方网站
  • 手机网站建设代码广西网站建设哪家强
  • 三线建设学兵连网站西安地区联系人阿里云网站空间主机
  • 做网站找客源厦门网站制作推广
  • 做普通网站公司吗学设计需要什么条件
  • 郑州网站建设郑州网络推广重庆公司建网站流程
  • 网站创意模板找个免费网站这么难吗
  • 义乌商城集团网站建设快推广app下载
  • 那个网站做二手买卖的宁德网站建设制作
  • 网站如何强制修改主页 源码WordPress文章分享图
  • d开头的做网站的软件东莞电子网站建设哪儿有
  • 怎样安装网站模板系统的超级宗门
  • 福建建设执业注册中心网站做像淘宝这样的购物网站要多少钱
  • 济南企业自助建站杭州建站公司
  • 如何查网站服务器速度中国建设银行账户查询