BFS首先搞同一层,然后从同一层一个个出发,找下一层 DFS首先搞一个,一直搞到底,然后再搞下一个,也就是回溯 接下来,我首先分析一下,我的整个思路的分析~~ ==超时的个人思路:= 对于我个人来讲,看到题的第一反应是使用DFS(深度优先),很简单嘛,思路就是: 从0,0开始,可以往上下左右方向走,我只需要确认:1....
直接用递归的方法,当前最大深度等于max(left.height, right.heght)+1;时间复杂度O(N),空间复杂度O(height)递归栈 用bfs迭代遍历整个二叉树(使用队列),记录深度;时间复杂度O(N),空间复杂度最高可能O(N)
【LeetCode】200. 岛屿数量 & 695. 岛屿的最大面积(高频题!!!经典 DFS 和 BFS 高频题 商汤、字节面试题) 一、岛屿数量 1.1. 题目描述 给你一个由 ‘1’(陆地)和‘0’(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外...
LeetCode 207. 课程表 (BFS && DFS 双解法) 方法一:入度表(广度优先遍历) 解题思路: 统计课程安排图中每个节点的入度,生成 入度表 indegrees。 借助一个队列 queue,将所有入度为 0 的节点入队。 当queue 非空时,依次将队首节点出队,在课程安排图中删除此节点 pre:...
本文详细解析了二叉树的三种经典遍历方式:中序遍历(94题)、层序遍历(102题)和右视图(199题)。通过递归与迭代实现中序遍历,深入理解深度优先搜索(DFS);借助队列完成层序遍历和右视图,掌握广度优先搜索(BFS)。文章对比DFS与BFS的思维方式,总结不同遍历的应用场景,为后续构造树结构奠定基础。
三、图论 / 搜索类(DFS / BFS / 并查集)6. 图遍历 + 染色问题 高频场景:判断是否能分组 / 是否连通 / 最小群组数 代表题目:图节点最少颜色分类、岛屿数量 易错点:visited数组没写、递归边界出错 7. 并查集 高频场景:集合归并、最小路径分组 代表题目:最小合并组、车站聚合 ...
这道题无论用BFS还是记忆化搜索,如果不剪枝会有极高的总TLE风险,但剪枝又极有可能剪掉最优解。具体剪枝操作应该是保证插入位置旁如果有同色球,那插入位置总是一串同色球之后的最后一个位置,AB之间插C的情况不必考虑,但AA之间插B的情况必须考虑。 Top15 1531 压缩字符串2 ...
解法一,DFS 深度优先搜索 解法二,BFS 广度搜索优先(DFS+临时队列) BFS 的 解法三,UnionFind 并查集(Disjoin Set) Find 函数的解释 Leetcode 新手快速上手100题代码整理:王几行xing:LeetCode 力扣入门100题 (全网新手最友好!) 本体涉及的数据结构:图,或者简单而言,叫二维数组 读题 关键:只考虑上下左右的方向,...
sort(reverse=True) dfs(0, 0) return -1 if res == float('inf') else res 解法四,BFS 广度优先搜索 思路: 首先判断了特殊情况,当金额为0时,需要的硬币数为0,直接返回0; 接着创建了一个队列,以及一个用于存储已访问过的金额的集合visited; 将起始节点(金额为0,步数为0)放入队列中,并将金额0加入...
除常规的键值映射外,需掌握设计哈希结构(如LRU缓存)、哈希冲突解决方案。利用哈希可快速实现两数之和、子数组和等题型。6.堆 大顶堆与小顶堆适用于TopK问题(如合并K个排序数组),动态数据流的中位数查找需要双堆配合。7.图 DFS/BFS是基础,拓扑排序用于课程表类题目,并查集解决朋友圈、岛屿数量问题。最短...