题目描述
Given two integers n and k, return all possible combinations of knumbers 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],]
import java.util.*; public class Solution { public ArrayList<ArrayList<Integer>> combine(int n, int k) { ArrayList<ArrayList<Integer>> array=new ArrayList(); if(n<k) return array; ArrayList<Integer> list=new ArrayList(); help(n,1,k,list,array); return array; } public void help(int n,int cur,int count,ArrayList<Integer> list,ArrayList<ArrayList<Integer>> array) { if(count == 0) { array.add(new ArrayList(list)); return; } if(count+cur<=n+1) { list.add(cur); help(n,cur+1,count-1,list,array); list.remove(list.size()-1); help(n,cur+1,count,list,array); } }
本文介绍了一个算法问题:给定两个整数 n 和 k,返回所有可能的由 1 到 n 中 k 个数字组成的组合。文章提供了一段 Java 代码实现,通过递归的方式生成这些组合。
392

被折叠的 条评论
为什么被折叠?



