77. 组合

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

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

class Solution {
private:
    void traversal(int lhs, int rhs, int k)
    {
        if (k == 0) {
            res.emplace_back(vec);
            return;
        }
        for (int i = lhs; i <= rhs; i++) {
            if (rhs - lhs + 1 < k) return;
            vec.emplace_back(i);
            traversal(i + 1, rhs, k - 1);
            vec.pop_back();
        }
    }
public:
    vector<int> vec;
    vector<vector<int>> res;
    vector<vector<int>> combine(int n, int k) {
        traversal(1, n, k);
        return res;
    }
};
posted @   xiazichengxi  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
主题色彩