您的位置:首页 > 其它

[LeetCode] Combinations, Solution

2016-01-12 11:10 411 查看
Given two integers n[/i] and k[/i], return all possible combinations of k[/i] numbers out of 1 … n[/i].
For example,
If n[/i] = 4 and k[/i] = 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:    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: