77. 组合

Problem: 77. 组合

解题方法

说实话有点懵逼,用递归来做K层循环,等会再写吧

现在有点明白了,尝试把函数直接带入,可以看的非常清楚

复杂度

时间复杂度:

添加时间复杂度, 示例: $O(n)$

空间复杂度:

添加空间复杂度, 示例: $O(n)$

Code

[]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

class Solution {

public:

    vector<vector<int>> res;

    vector<int> path;

    vector<vector<int>> combine(int n, int k) {

        back_traincing(n + 1,k,1);

        return res;

    }

    void back_traincing(int n,int k,int start_index){

        if(path.size() == k) {

            res.push_back(path);

            return;

        }

        for(int i = start_index; i < n; i++) {

            path.push_back(i);

            back_traincing(n,k,i + 1);

            path.pop_back();

        }

    }

};