网站建设费用说明,青岛网站建设方案公司,windows优化大师官网,免费做网站模板在哪里做题目链接
组合
题目描述 注意点
1 n 201 k n可以按 任何顺序 返回答案
解答思路
使用深度优先遍历根据传入的深度depth寻找相应的组合。因为组合中的元素不能重复#xff0c;从小到大选择元素#xff0c;在深度优先遍历时#xff0c;根据上一次进入…题目链接
组合
题目描述 注意点
1 n 201 k n可以按 任何顺序 返回答案
解答思路
使用深度优先遍历根据传入的深度depth寻找相应的组合。因为组合中的元素不能重复从小到大选择元素在深度优先遍历时根据上一次进入dfs选择的元素idx加一作为本次选择的第一个元素遍历到n为止以此类推直到depth等于k就找到了一个组合上述过程全部遍历完就找到了所有的组合
代码
class Solution {public ListListInteger combine(int n, int k) {ListListInteger res new ArrayList();ListInteger sonRes new ArrayList();dfs(n, k, 1, 0, res, sonRes);return res;}public void dfs(int n, int k, int idx, int depth, ListListInteger res, ListInteger sonRes) {if (depth k) {res.add(new ArrayList(sonRes));return;}for (int i idx; i n; i) {sonRes.add(i);dfs(n, k, i 1, depth 1, res, sonRes);sonRes.removeLast();}}
}关键点
深度优先遍历和回溯的思想