首页 > 代码库 > LeetCode:Combinations 题解

LeetCode:Combinations 题解

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],]
DFS,递归
 1 class Solution { 2 public: 3     vector<vector<int> > ans; 4     vector<int> vi; 5     int k_start,n_start; 6     void DFS(int Count,int start) 7     { 8         if(Count== k_start) 9         {10             ans.push_back(vi);11             return;12         }13         for(int i=start;i<n_start;i++)14         {15             vi[Count] = i+1;16             DFS(Count+1, i+1);17         }18     }19     vector<vector<int> > combine(int n, int k) {20         ans.clear();21         vi.resize(k);22         k_start = k;23         n_start = n;24         DFS(0,0);25         return ans;26     }27 };