LeetCode 热题100 图论专题解析

LeetCode 热题100 图论专题解析

图论是计算机科学中非常重要的领域,广泛应用于各种算法和实际问题中。在 LeetCode 热题100 中,图论相关的题目主要涉及深度优先搜索(DFS)、广度优先搜索(BFS)以及拓扑排序等技巧。本文将深入解析这些题目,帮助读者掌握图论相关问题的解决方法。

1. 岛屿数量

题目描述 :给定一个由 '1'(陆地)和 '0'(水)组成的二维网格,计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地组成,且一个格子只能属于一个岛屿。
解题思路:使用 DFS 或 BFS。遍历网格,当遇到陆地时,从该点开始进行 DFS 或 BFS,标记所有相连的陆地,然后岛屿数量加一。

2. 腐烂的橘子

题目描述 :在给定的网格中,每个单元格可以有以下三个值之一:0 表示空单元格,1 表示新鲜橘子,或 2 表示腐烂的橘子。每分钟,腐烂的橘子会使其水平或垂直相邻的新鲜橘子腐烂。编写代码以计算从左上角开始,腐烂所有橘子所需的最少分钟数。
解题思路:使用 BFS。将所有腐烂的橘子作为起点进行 BFS,记录每个新鲜橘子腐烂的时间。

3. 课程表

题目描述 :判断是否可能完成所有课程的学习。课程之间存在先修关系,表示为二维数组 prerequisites。
解题思路:使用拓扑排序。构建一个有向图,然后进行拓扑排序,如果在排序过程中没有发现环,则可以完成所有课程。

4. 实现 Trie (前缀树)

题目描述 :实现一个 Trie(前缀树),包含 insert, search, 和 startsWith 这三个操作。
解题思路:构建 Trie 树的数据结构,每个节点包含一个字符和一个指示是否是单词结尾的标志。

相关推荐
爱coding的橙子6 小时前
每日算法刷题计划day13 5.22:leetcode不定长滑动窗口最短/最小1道题+求子数组个数越长越合法2道题,用时1h
算法·leetcode·职场和发展
编程绿豆侠6 小时前
力扣HOT100之二叉树: 437. 路径总和 III
算法·leetcode·哈希算法
Owen_Q11 小时前
Leetcode百题斩-回溯
算法·leetcode·职场和发展
黎明smaly13 小时前
【数据结构与算法】LeetCode 每日三题
算法·leetcode·职场和发展
一只鱼^_14 小时前
力扣第450场周赛
数据结构·c++·算法·leetcode·近邻算法·广度优先·图搜索算法
小羊在奋斗14 小时前
【LeetCode 热题 100】有效的括号 / 最小栈 / 字符串解码 / 柱状图中最大的矩形
算法·leetcode·职场和发展
编程绿豆侠14 小时前
力扣HOT100之二叉树:124. 二叉树中的最大路径和
算法·leetcode·深度优先
蒟蒻小袁14 小时前
力扣面试150题-- 从中序与后序遍历序列构造二叉树
算法·leetcode·面试
阳洞洞15 小时前
leetcode 148. Sort List
leetcode·链表·归并排序·递归·排序
Tisfy16 小时前
LeetCode 3356.零数组变换 II:二分查找 + I的差分数组
算法·leetcode·二分查找·题解·差分数组