组合
描述 :
给定两个整数 n
和 k
,返回范围 [1, n]
中所有可能的 k
个数的组合。
你可以按 任何顺序 返回答案。
题目 :
LeetCode 77. 组合 :
77. 组合
分析 :
请看回溯怎么回事 , 里面讲的很清晰 .
解析 ;
class Solution {public List<List<Integer>> combine(int n, int k) {List<List<Integer>> list = new ArrayList<>();if(n <= 0 || n < k){return list;}Deque<Integer> deque = new ArrayDeque<>();dfs(n,k,1,list,deque);return list;}//dfs 深度优先搜索的意思public void dfs (int n,int k,int start,List<List<Integer>> list,Deque<Integer> deque){if(deque.size() == k){list.add(new ArrayList<>(deque));return;}for(int i = start;i <= n;i++){deque.addLast(i);dfs(n,k,i + 1,list,deque);deque.removeLast();}}
}