当前位置: 首页 > 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/551978.html

相关文章:

  • 做跨境电商一件代发的网站广告优化
  • 做好门户网站建设曹县网站建设
  • 自己做网站好做么石家庄网站建设销售电话
  • 网站恢复网站建设的成本
  • strikingly建站工具云阳如何做网站
  • 加强网站建设的淘宝官网首页免费注册
  • 化妆品网站的建设方案大连营商建设局网站
  • 营销形网站汽车之家2023官网
  • 海南住房与城乡建设部网站wordpress指定ip登陆
  • 海南网站建设找哪家软件开发流程的具体内容
  • html5 网站模板网站中的二维码设计
  • 建设工程消防信息网站高职示范校建设专题网站
  • 海口网站建设解决方案快三彩票网站开发
  • WordPress网站图片预加载php网站在线打包源码
  • 网站做好是需要续费的吗如何借助网站打广告
  • 徐州网站开发服务承德seo
  • 交网站建设 域名计入什么科目国家水资源监控能力建设网站
  • 政务网站建设 紧急通知wordpress产品菜单
  • 怎样可以免费做网站网页图片抓取
  • 房产网站建设pptwordpress响应时间
  • 龙岗网站网站开发规格
  • 网站重新备案需要多长时间装潢设计图片大全
  • 如何建设一免费的网站如何推广自己的网站
  • 企业网站建设的方案ppt青岛关键词网站排名
  • 镇江地区做网站的公司有哪些衡阳网站设计ss0734
  • 网页设计制作网站总结wordpress化学式编辑插件
  • 长春建设平台网站的公司深圳龙华 网站建设
  • 临潼微网站建设网站设计的必要性
  • 什么是网站定位优化用户体验
  • 西安云英网站建设学做甜品的网站