码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode: Combinations

时间:2014-09-04 22:03:20      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   ar   strong   for   

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

地址:https://oj.leetcode.com/problems/combinations/
算法:递归搞定。$\binom{n}{k}=\binom{n-1}{k}+\binom{n-1}{k}$。代码:
 1 class Solution {
 2 public:
 3     vector<vector<int> > combine(int n, int k) {
 4         if(n < 1 || k < 1)  return vector<vector<int> > ();
 5         return combineCore(n, k);
 6     }
 7     vector<vector<int> > combineCore(int n,int k){
 8         vector<vector<int> > result;
 9         if(k <= 0){
10             result.push_back(vector<int>());
11             return result;
12         }
13         if(n <= k){
14             vector<int> temp;
15             for(int i = 1; i <= n; ++i)
16                 temp.push_back(i);
17             result.push_back(temp);
18             return result;
19         }
20         result = combineCore(n-1, k-1);
21         for(int j = 0; j < result.size(); ++j){
22             result[j].push_back(n);
23         }
24         vector<vector<int> > temp = combineCore(n-1,k);
25         result.insert(result.end(),temp.begin(),temp.end());
26         return result;
27     }
28 };

 

LeetCode: Combinations

标签:style   blog   http   color   os   io   ar   strong   for   

原文地址:http://www.cnblogs.com/boostable/p/leetcode_combinations.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!