【算法刷题day24】回溯算法+简单剪枝

77.组合

文档链接:[代码随想录]
题目链接:77.组合

题目:
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
你可以按 任何顺序 返回答案。

class Solution {
private:
    vector<int> path;
    vector<vector<int>> result;
    void backtracking(int n, int k, int index){
        if(path.size() == k){
            result.push_back(path);
            return ;
        }
        for(int i = index; i <= n; i++){
            path.push_back(i);
            backtracking(n , k, i + 1);
            path.pop_back();
        }
    }
public:
    vector<vector<int>> combine(int n, int k) {
        backtracking(n, k, 1);
        return result;
    }
};

剪枝

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++) { // 优化的地方
            path.push_back(i); // 处理节点
            backtracking(n, k, i + 1);
            path.pop_back(); // 回溯,撤销处理的节点
        }
    }
public:

    vector<vector<int>> combine(int n, int k) {
        backtracking(n, k, 1);
        return result;
    }
};

相关推荐

  1. 算法day24回溯算法+简单剪枝

    2024-04-12 23:00:04       76 阅读
  2. Day 24 回溯算法 1

    2024-04-12 23:00:04       37 阅读
  3. Day 24 回溯算法01

    2024-04-12 23:00:04       20 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 23:00:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 23:00:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 23:00:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 23:00:04       18 阅读

热门阅读

  1. 虚拟线程和普通线程

    2024-04-12 23:00:04       15 阅读
  2. 递归神经网络(Recursive Neural Networks)

    2024-04-12 23:00:04       16 阅读
  3. 题目 2011: 电导流的矩形

    2024-04-12 23:00:04       17 阅读
  4. DataSource

    2024-04-12 23:00:04       18 阅读
  5. 90天玩转Python—14—基础知识篇:变量进阶

    2024-04-12 23:00:04       14 阅读