本文主要是介绍77. Combinations Question,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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], ]给定m k,求出1-n范围内所有k个数的组合
递归,
public class Solution {public List<List<Integer>> combine(int n, int k) {List<List<Integer>> combs=new ArrayList<List<Integer>>();combine(combs,new ArrayList<Integer>(),1,n,k);return combs;}public static void combine(List<List<Integer>> combs,List<Integer> comb,int start,int n,int k){if(k==0){combs.add(new ArrayList<Integer>(comb));return;}for(int i=start;i<=n;i++){comb.add(i);combine(combs,comb,i+1,n,k-1);//k=0时 返回 将刚才添加的数去掉 让i++然后 再向comb中添加新的元素comb.remove(comb.size()-1);}}
}
这篇关于77. Combinations Question的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!