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], ] 解题思路: 76那道题虽然我做出来了,但是速度很慢。 这是组合的题。没啥好说的...就是不断遍历添加然后将满足条件的list添加到result中。我用的是递归来进行处理。public class Solution { public List<List<Integer>> result = new ArrayList<List<Integer>>(); public List<List<Integer>> combine(int n, int k) { for(int i = 1;i<=n-k+1;i++) { List<Integer> com = new ArrayList<Integer>(); com.add(i); subcombine(i+1,k,n,com); } return result; } public void subcombine(int x,int k,int n,List<Integer> com) { int length = com.size(); if(length == k) result.add(com); else { for(int i = x;i<=n-k+length+1;i++) { List<Integer> newcom = new ArrayList<Integer>(); newcom.addAll(com); newcom.add(i); this.subcombine(i+1,k,n,newcom); } } } }