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

[leetcode]Combinations

时间:2014-07-22 22:36:54      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   

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

算法:

思路1: 迭代,k个数就用k层迭代。貌似实现起来也是略有难度的

 

思路2: DFS,不啰嗦

 1 public class Solution {
 2     List<List<Integer>> result = new ArrayList<List<Integer>>();
 3     public List<List<Integer>> combine(int n, int k) {
 4         if(n < k || k < 0 || n < 0) return result;
 5         List<Integer> list = new ArrayList<Integer>();
 6         dfs(list,1, n, k);
 7         return result;
 8     }
 9     private void dfs(List<Integer> list,int start,int n,int left){
10         if(left == 0){
11             result.add(new ArrayList<Integer>(list));
12             return ;
13         }
14         for(int i = start; i <= n ; i++){
15             list.add(i);
16             dfs(list, i + 1, n, left - 1);
17             list.remove(list.size() - 1);
18         }
19     }
20 }

[leetcode]Combinations,布布扣,bubuko.com

[leetcode]Combinations

标签:style   blog   http   color   os   io   

原文地址:http://www.cnblogs.com/huntfor/p/3860695.html

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