首页 > 编程语言 >【算法训练营day24】LeetCode77. 组合

【算法训练营day24】LeetCode77. 组合

时间:2023-01-26 11:22:33浏览次数:58  
标签:index LeetCode77 int day24 训练营 start result path backtracking

LeetCode77. 组合

题目链接:77. 组合

独上高楼,望尽天涯

好久没写算法题了,需要复建一下,直接看题解顺便重新熟悉一下语法。

慕然回首,灯火阑珊

本题的代码基本上就是一个标准的回溯模板。

class Solution {
private:
    vector<vector<int>> result;
    vector<int> path;
    void backtracking(int n, int k, int start_index) {
        if (path.size() == k) { 
            result.push_back(path); // 存入一种结果
            return;
        }

        for (int i = start_index; i <= n; i++) { // for循环横向遍历
            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 start_index) {
        if (path.size() == k) { 
            result.push_back(path); // 存入一种结果
            return;
        }

        for (int i = start_index; 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;
    }
};

标签:index,LeetCode77,int,day24,训练营,start,result,path,backtracking
From: https://www.cnblogs.com/BarcelonaTong/p/17067643.html

相关文章