![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回溯算法
Ealiser
这个作者很懒,什么都没留下…
展开
-
LeetCode第114题 二叉树展开为链表
算法核心思想代码class Solution { public void flatten(TreeNode root) { if (root == null) return; List<TreeNode> temp = new ArrayList<>(); dfs(root,temp); for (int i = 1; i < temp.size(); ++i) { ..原创 2022-04-16 11:51:03 · 2941 阅读 · 0 评论 -
LeetCode第113题 路径总和II
算法回溯和深度优先搜索核心思想二叉树很适合用深度优先搜索去做,简单快捷。这道题值得注意点是必须从根到叶子,同时没必要减枝,减枝的条件也有点复杂。代码class Solution { List<List<Integer>> res = new LinkedList<>(); public List<List<Integer>> pathSum(TreeNode root, int targetSum) { .原创 2022-04-15 16:14:03 · 1835 阅读 · 0 评论 -
LeetCode第144.94.145题 二叉树的三种遍历
算法回溯法、深度优先搜索核心思想三者在代码上的区别就是在哪里保存根的值。代码//先序遍历class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new LinkedList<>(); if(root == null) return res; dfs(root,res); .原创 2022-04-11 14:05:23 · 990 阅读 · 0 评论 -
LeetCode第22题 括号生成
算法回溯法核心思想简单的回溯,这几天做了几个回溯的类型题,简单做个总结,不一定对,还需要验证:使用回溯的题目,基本和二叉树和图有关系,使用的方法很多事深度优先遍历。对于二叉树的题目做好画好一个二叉树,做好模拟,想好减枝的条件,操作即可。代码class Solution { List<String> res = new LinkedList<>(); public List<String> generateParenthesis(int n).原创 2022-04-07 14:15:29 · 1136 阅读 · 0 评论 -
LeetCode第51题八皇后问题
算法回溯核心思想八皇后问题是回溯的经典问题。首先建议把模板备好,照着模板开始写。List<Value> result;void backtrack(路径,选择列表){if(满足结束条件){result.add(路径);return;}for(选择:选择列表){做选择;backtrack(路径,选择列表);撤销选择;}}此外,对于使用java做这个道题,需要考虑java的字符处理太复杂了,建议先使用数组,然后进行转换。另外U1S1,笔试碰到这种题大概率要GG,.原创 2022-04-05 16:07:21 · 1982 阅读 · 0 评论 -
LeetCode第46题 全排列
算法回溯算法核心思想这是做的第一道回溯算法题目。回溯的主要是通过穷举解决组合问题,这种思想非常适合处理面试的问题。因为此方法虽然占有大量的时间复杂度,但是却能很快给出解答。给出一个回溯法的万能公式List<Value> result;void backtrack(路径,选择列表){if(满足结束条件){result.add(路径);return;}for(选择:选择列表){做选择;backtrack(路径,选择列表);撤销选择;}}代码class So.原创 2022-04-04 16:39:02 · 736 阅读 · 0 评论