leetcode - Combinations

2015-07-20 17:29:41 · 作者: · 浏览: 4

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],
]

?

class Solution {
public:
    std::vector
  
    > combine(int n, int k) {
		std::vector
   
    > result; std::vector
    
      vec; dfs(n,k,1,0,result,vec); return result; } private: void dfs(int n, int k, int bgn, int end,std::vector
     
      > &result,std::vector
      
        &vec) { if(end == k) { result.push_back(vec); } for (int i = bgn; i <= n; i++) { vec.push_back(i); dfs(n,k,i+1,end+1,result,vec); vec.pop_back(); } } };
      
     
    
   
  


?