一:题目
二:上码
class Solution {
/**
注意是组合 那么的话 [1,2] 和 [2,1] 是等价的。
*/
private List<List<Integer>> ans = new ArrayList<>();
private List<Integer> path = new ArrayList<>();
public void getAns(int st, int n,int k) {
if (path.size() == k) {
ans.add(new ArrayList<>(path));
return ;
}
for (int i = st; i <= n; i++) {//这里递归的时候也不要人脑压栈,这里的st是动态的因为每递归一层
path.add(i); //都是从不同的下标开始的
getAns(i+1,n,k);
path.remove(path.size()-1);
}
}
public List<List<Integer>> combine(int n, int k) {
getAns(1,n,k);
return ans;
}
}