标签:
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], ]
1 class Solution { 2 public: 3 vector<vector<int>> combine(int n, int k) { 4 vector<vector<int> > result; 5 if(n < k || n <= 0) return result; 6 7 vector<int> temp; 8 helper(result, temp, n, k, 1); 9 return result; 10 } 11 12 void helper(vector<vector<int> >& result, vector<int>& temp, int n, int k, int depth){ 13 if(temp.size() == k){ 14 result.push_back(temp); 15 return; 16 } 17 18 for(int i = depth; i <= n; i++){ 19 temp.push_back(i); 20 helper(result, temp, n, k, i + 1); 21 temp.pop_back(); 22 } 23 } 24 };
标签:
原文地址:http://www.cnblogs.com/amazingzoe/p/4873391.html