![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
Vaccy Zhu
自律是解决人生问题最主要的工具,也是解决人生痛苦最重要的方法!
展开
-
冗余连接II-并查集685-python
并查集的应用,分为存在\不存在入度为2的顶点两种情况讨论。from collections import defaultdictclass Solution: def findRedundantDirectedConnection(self, edges: List[List[int]]) -> List[int]: n = len(edges) parent = [0] * n # 祖先数组初始化 def init(n)转载 2022-05-26 20:21:10 · 135 阅读 · 0 评论 -
冗余连接-并查集684-python
并查集问题,在find和union函数中找出问题的解决办法。class Solution: def findRedundantConnection(self, edges: List[List[int]]) -> List[int]: n = len(edges) parent = [0] * n # 祖先数组:用于记录每一个节点的祖先 res = [] # 祖先数组初始化 def init(n):原创 2022-05-12 16:28:48 · 188 阅读 · 0 评论 -
单词接龙-图论127-python
本题要求的是最短转换序列的长度,看到最短首先想到的就是广度优先搜索。想到广度优先搜索自然而然的就能想到图,但是本题并没有直截了当的给出图的模型,因此需要按照题意把它抽象成图的模型。class Solution: def ladderLength(self, beginWord: str, endWord: str, wordList: List[str]) -> int: edge = dict() # 记录无向图中每个单词的连接单词 visi转载 2022-05-12 14:22:41 · 80 阅读 · 0 评论 -
钥匙和房间-图论841-python
没看答案。图论的广度优先搜索(BFS),类似树结构的BFS,都是利用队列实现的。class Solution: def canVisitAllRooms(self, rooms: List[List[int]]) -> bool: n = len(rooms) visited = [True] + [False] * (n-1) # 用于判断某个房间在之前是否已经访问过,防止死循环 queue = [i for i in rooms[0]]原创 2022-05-10 17:07:28 · 183 阅读 · 0 评论 -
岛屿的周长-图论463-python
没看答案,陆地格的上下左右四个相邻方格中的水域格的数量即为该陆地格贡献的周长,用matrix二维数组替换掉grid,可避免过多的if else判断。class Solution: def islandPerimeter(self, grid: List[List[int]]) -> int: row, col = len(grid), len(grid[0]) matrix = [[0] * (col+2) for _ in range(row+2)]原创 2022-05-10 15:40:02 · 170 阅读 · 0 评论 -
岛屿数量-图论200-python
DFSpythonclass Solution: def numIslands(self, grid: List[List[str]]): m = len(grid) n = len(grid[0]) res = 0 def dfs(i, j): if i < 0 or i >= m or j < 0 or j >= n or grid[i][j] == '0':原创 2021-08-01 17:14:02 · 85 阅读 · 0 评论