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

阿里云网站托管南宁市网站开发公司

阿里云网站托管,南宁市网站开发公司,房产主题wordpress,建设网站的方法这道题之前刷代码随想录的时候做过,现在又给忘完了,不过看了下自己当时写的博客,一下子就明白过来了,这道题收集的是组合结果,元素的排列顺序不重要,这与上一题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/587409.html

相关文章:

  • discuz仿搜索网站企业网站建设ppt介绍
  • 跑腿网站建设哪里搜索引擎优化好
  • 高校思政专题网站建设ps做网站一般用多大字体
  • XLOOKUP:集 VLOOKUP 与 INDEX+MATCH 于一身的终极查找函数
  • 网站推广主要方法苏州二建建筑集团有限公司
  • 3.String、StringBuilder、StringBuffer:性能差别多大?
  • 输入框无法onChange两种解决思路
  • 网站建设服务商都有哪些网站建设哪个公司比较好
  • 个人网站效果企业网站建设代理加盟
  • 网站班级文化建设三只松鼠的网站建设
  • 35网站建设深圳建筑协会
  • 上海设立企业网站中山做网站推广公司
  • 想学学做网站网站建设与维护税率
  • 薛城网站建设可视网站开发工具
  • 徐州市经济技术开发区建设局网站wordpress md5工具
  • 比较好的做网站的公司郑州seo顾问阿亮
  • 厦门网站建设有哪些公司wordpress博客怎么用
  • 郑州服装 网站建设专业的东莞网站排名
  • 中国网站建设的利弊建设英文网站的必要性
  • 有域名了如何自己做网站浪漫的html表白源代码
  • 五金机械设备网站模板建设北京做网站建设
  • 房管局备案查询网站表情包做旧网站
  • 珠宝网站建设平台分析报告360建筑网这家公司怎么样
  • 轮转数组——深度解剖逆转算法的奥秘
  • 外贸网站建设 义乌wordpress 3.9.1
  • 网站开发包含网站维护吗网站建设可行性分析报告模板
  • 广东企业网站seo点击软件意大利设计网站
  • 深圳做网页的网站平面设计课程简介
  • 嘉兴网站建设网站做网站需要前置审批
  • 培训网站推荐网站地图生成器