题解 | #牛棚分组#
牛棚分组
https://www.nowcoder.com/practice/d5740e4dde3740828491236c53737af4
所用语言
java
所用知识
递归、数组
解题思路
完整代码
ArrayList<ArrayList<Integer>> lists = new
ArrayList<ArrayList<Integer>>();
public int[][] combine (int n, int k) {
// write code here
search(1,k,n,new ArrayList<>());
int[][] arr = new int[lists.size()][k];
for(int i=0;i<lists.size();i++){
for(int j=0;j<lists.get(i).size();j++){
arr[i][j] = lists.get(i).get(j);
}
}
return arr;
}
public void search(int cur,int cap,int n,ArrayList<Integer> list){
if(list.size()==cap){
lists.add(new ArrayList<>(list));
return;
}
if(cur>n){
return;
}
list.add(cur);
search(cur+1,cap,n,list);
list.remove(list.size()-1);
search(cur+1,cap,n,list);
}
#牛棚分组#