77组合
給定兩個整數?n?和?k,返回 1 ...?n?中所有可能的?k?個數的組合。
示例:
輸入:?n = 4, k = 2 輸出: [[2,4],[3,4],[2,3],[1,2],[1,3],[1,4], ]最容易想到的應該是回溯,更多題目思路及代碼見:https://github.com/CallmeZhouxiaolun/leetcode/tree/master/ordered/71to80
class Solution { public:vector<vector<int>> combine(int n, int k) {vector<vector<int>> res;vector<int> cb;backtracking(res, cb, n, k,1);return res;}void backtracking(vector<vector<int>>& res, vector<int>& cb, int n, int k, int c){if(cb.size() == k){res.push_back(cb);return;}for(int i=c; i<=n; i++){cb.push_back(i);backtracking(res, cb, n, k, i+1);cb.pop_back();}} };后來看到大佬的做法,有迭代方法,
class Solution { public:vector<vector<int>> combine(int n, int k) {vector<vector<int>> res;vector<int> cb;backtracking(res, cb, n, k,1);return res;}void backtracking(vector<vector<int>>& res, vector<int>& cb, int n, int k, int c){if(cb.size() == k){res.push_back(cb);return;}for(int i=c; i<=n; i++){cb.push_back(i);backtracking(res, cb, n, k, i+1);cb.pop_back();}} };總結
 
                            
                        - 上一篇: 阿里云网站备案时变更备案的问题解决总结
- 下一篇: 在nginx中使用proxy proto
