[LeetCode] Combinations, Solution

来源:互联网 发布:内部优惠券提取软件 编辑:程序博客网 时间:2024/06/06 19:22

Given two integers n and k, return all possible combinations of k numbers out of 1 … n.
For example,
If n = 4 and k = 2, a solution is:
[
[2,4],
[3,4],
[2,3],
[1,2],
[1,3],
[1,4],
]

» Solve this problem

[Thoughts]
Similar as “Conbination Sum”. But here the terminate condition is “k”, not sum.

[Code]

1:    vector<vector<int> > combine(int n, int k) {  
2: // Start typing your C/C++ solution below
3: // DO NOT write int main() function
4: vector<vector<int> > result;
5: vector<int> solution;
6: GetCombine(n,k,1, solution, result);
7: return result;
8: }
9: void GetCombine(
10: int n,
11: int k,
12: int level,
13: vector<int>& solution,
14: vector<vector<int> >& result)
15: {
16: if(solution.size() == k)
17: {
18: result.push_back(solution);
19: return;
20: }
21: for(int i =level; i<= n; i++)
22: {
23: solution.push_back(i);
24: GetCombine(n,k,i+1, solution, result);
25: solution.pop_back();
26: }
27: }
0 0
原创粉丝点击