摘要: 题目链接 77. 组合 思路 DFS 模板题 代码 class Solution { private List<List<Integer>> result = new ArrayList<>(); private Deque<Integer> path = new ArrayDeque<>(); p 阅读全文
posted @ 2023-03-06 14:59 Frodo1124 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题目链接 47. 全排列 II 思路 借用代码随想录的图。 以最右侧的分支为例,首先将 2 摆在第一位,剩下两个 1,在走完左边的 1 分支之后,对右边的 1 进行判断,发现右边的 1 还是和左边的一样,摆在第二个位置上(因为 used[i - 1] == false,说明左边的 1 没有使用)。因 阅读全文
posted @ 2023-03-06 14:31 Frodo1124 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 题目链接 46. 全排列 思路 本题是求排列问题.与组合问题不同的是,在排列问题中,不同的数字顺序被视为不同的排列,比如 [1,2] 与 [2,1] 是两种不同的排列。 搜索树如下图所示,引用自代码随想录 在组合问题的 dfs 算法上进行一点小修改即可,参考【DFS】LeetCode 78. 子集的 阅读全文
posted @ 2023-03-06 13:20 Frodo1124 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 题目链接 90. 子集 II 思路 去重方法与【DFS】LeetCode 40. 组合总和 II思路相似 代码 class Solution { private List<List<Integer>> result = new ArrayList<>(); private Deque<Integer 阅读全文
posted @ 2023-03-06 11:42 Frodo1124 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 题目链接 78. 子集 思路 求子集问题和 77.组合 (opens new window) 和 131.分割回文串 (opens new window) 又不一样了。 如果把子集问题、组合问题、分割问题都抽象为一棵树的话,那么组合问题和分割问题都是收集树的叶子节点,而子集问题是找树的所有节点! 其 阅读全文
posted @ 2023-03-06 10:50 Frodo1124 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 题目链接 216. 组合总和 III 思路 与 【DFS】LeetCode 40. 组合总和 II 思路一致,只不过 candidates 数组在题目中明确说明了只有1到9。 代码 class Solution { private List<List<Integer>> result = new A 阅读全文
posted @ 2023-03-06 09:43 Frodo1124 阅读(16) 评论(0) 推荐(0) 编辑