Leetcode 77. 组合(中等)回溯算法

77. 组合(中等)

题目:

给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。
输入:n = 4, k = 2
* 输出:
* [
* ⁠ [2,4],
* ⁠ [3,4],
* ⁠ [2,3],
* ⁠ [1,2],
* ⁠ [1,3],
* ⁠ [1,4],
* ]
 
思路:
在回溯时使用start变量来确定起点
 
复制代码
class Solution {
public:
    vector<vector<int>> combine(int n, int k) {
        vector<int> track;
        backtrack(n,k,track,1);
        return ret;
    }
    void backtrack(int n,int k,vector<int>& track, int index){
        if(track.size()==k){
            ret.push_back(track);
            return;
        }
        for(int i=index;i<=n;++i){
            track.push_back(i);
            backtrack(n,k,track,i+1);
            track.pop_back();
        }
    }
    vector<vector<int>> ret;
};
复制代码

 

posted @   鸭子船长  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示