从此替开始为回溯算法。

代码随想录 (programmercarl.com)

回溯算法模板:

伪代码如下:

void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtracking(路径,选择列表); // 递归回溯,撤销处理结果}
}

题意描述:

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。

你可以按 任何顺序 返回答案。

回溯算法如图:

完整C++代码如下:

class Solution {
private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int startIndex){if(path.size() == k){result.push_back(path);return;}//  for (int i = startIndex; i <= n - (k - path.size()) + 1; i++)  // 优化的地方接下来看一下优化过程如下:1.已经选择的元素个数:path.size();2.还需要的元素个数为: k - path.size();3.在集合n中至多要从该起始位置 : n - (k - path.size()) + 1,开始遍历为什么有个+1呢,因为包括起始位置,我们要是一个左闭的集合。//for(int i = startIndex; i <= n; i++){path.push_back(i);backtracking(n, k, i + 1);path.pop_back();}}
public:vector<vector<int>> combine(int n, int k) {result.clear();path.clear();backtracking(n, k, 1);return result;}
};

刷题day46:组合相关推荐

  1. 力扣 刷题77 组合排序,剪枝

    77. 组合 难度中等451收藏分享切换为英文接收动态反馈 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合. 示例: 输入: n = 4, k = 2 输出: [[2,4 ...

  2. ​LeetCode刷题实战216:组合总和 III

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

  3. 力扣(LeetCode)刷题,简单+中等题(第28期)

    目录 第1题:翻转单词顺序 第2题:顺时针打印矩阵 第3题:总持续时间可被 60 整除的歌曲 第4题:字符串的最大公因子 第5题:上升下降字符串 第6题:将数组分成和相等的三个部分 第7题:可被 5 ...

  4. 力扣(LeetCode)刷题,简单+中等题(第26期)

    目录 第1题:字典序排数 第2题:字符串解码 第3题:查找常用字符 第4题:所有奇数长度子数组的和 第5题:长按键入 第6题:分割字符串的最大得分 第7题:回文链表 第8题:有多少小于当前数字的数字 ...

  5. LeetCode刷题记录1——717. 1-bit and 2-bit Characters(easy)

    LeetCode刷题记录1--717. 1-bit and 2-bit Characters(easy) LeetCode刷题记录1--717. 1-bit and 2-bit Characters( ...

  6. 你面试稳了!通关LeetCode刷题完整攻略,省时又高效

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 作者:穷码农 来源:https://zhuanlan.zhihu.com/p/10 ...

  7. 【Leetcode】刷题题单记录

    程序=算法+数据结构,不管干哪一行,只要涉及到编程算法始终是最重要的!!! 算法基础差,变做题巩固!!! LeetCode刷题,搞起来! 由于我只会C++和Python, 所以题解只有C++ 和 Py ...

  8. SQL 学习最强刷题网站!

    大家好,我是荣哥. 今天给大家上点干货,推荐一款之前一直在用的SQL刷题网站-牛客的SQL题库. 很多人都知道牛客有面经,但是还不知道有SQL,其实牛客的SQL题目已经有大概500题了,题目内容.产品 ...

  9. leetcode数组汇总_LeetCode刷题实战43:字符串相乘

    算法的重要性,我就不多说了吧,想去大厂,就必须要经过基础知识和业务逻辑面试+算法面试.所以,为了提高大家的算法能力,这个公众号后续每天带大家做一道算法题,题目就从LeetCode上面选 ! 今天和大家 ...

最新文章

  1. Android 马甲包制作流程
  2. mysql密码有格式要求吗_高考日语作文10个格式要求!你能看出图中5处错误吗?...
  3. fastRPC的数据库服务
  4. otg usb 定位_详解USB OTG工作原理及其应用
  5. 【算法】学习笔记(0):算法初探(逻辑抽象 + 示例 + 代码实现)
  6. 存储过程知识总结【一】
  7. 如何获取sharepoint列表_练习 34 - 获取列表元素 - Learn Python 3 The Hard Way
  8. 身份证OCR识别SDK
  9. 使用ExtendSim进行医疗仿真
  10. Unity脚本组件勾选框的存在的意义
  11. C中的struct,union,Bit Filed以及内存对齐
  12. 微信活码系统程序源码
  13. 汽车VIN码与二手车市场
  14. 经常被问退休金多少,怎么答
  15. StringBuffer的equals
  16. S60v5 编程环境的搭建(2)
  17. QT实现简单的医院管理系统
  18. C++中 对》和《的重载
  19. 申请高新技术企业有什么好处?
  20. 2019年的经典案例

热门文章

  1. FaceBook共同好友有啥用
  2. 创业初期的时候,一定要亲力亲为
  3. Java多线程:多线程同步安全问题的 “三“ 种处理方式 ||多线程 ”死锁“ 的避免 || 单例模式”懒汉式“的线程同步安全问题
  4. android 手势监听案例
  5. 浪漫博主使用 Javascript 做了个表白工具,最后升华了
  6. 10分钟打造自己专属的uni-app工具箱
  7. “第二杯半价”,背后的商业逻辑,戳中了不少人的心弦
  8. JAVA JSP火车订票系统(JSP订票系统 JSP火车票预订系统)JSP火车票网上购票系统
  9. idea代码自动补全快捷键
  10. Qt之按钮添加背景图片的几种方法