一、题目大意标签:搜索https://leetcode.cn/problems/word-search给定一个 mxn二维字符网格 board和一个字符串单词 word。如果 word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例1:输入:board=[["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]],word="ABCCED"输出:true示例2:输入:board=[["A","B",
一、题目大意标签:搜索https://leetcode.cn/problems/number-of-provinces有n个城市,其中一些彼此相连,另一些没有相连。如果城市a与城市b直接相连,且城市b与城市c直接相连,那么城市a与城市c间接相连。省份是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个nxn的矩阵isConnected,其中isConnected[i][j]=1表示第i个城市和第j个城市直接相连,而isConnected[i][j]=0表示二者不直接相连。返回矩阵中省份的数量。示例1:输入:isConnected=[[1,1,0],[1,1,0],[0,0,1]]输
一、题目大意标签:搜索https://leetcode.cn/problems/word-search给定一个 mxn二维字符网格 board和一个字符串单词 word。如果 word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例1:输入:board=[["A","B","C","E"],["S","F","C","S"],["A","D","E","E"]],word="ABCCED"输出:true示例2:输入:board=[["A","B",
一、题目大意标签:搜索https://leetcode.cn/problems/number-of-provinces有n个城市,其中一些彼此相连,另一些没有相连。如果城市a与城市b直接相连,且城市b与城市c直接相连,那么城市a与城市c间接相连。省份是一组直接或间接相连的城市,组内不含其他没有相连的城市。给你一个nxn的矩阵isConnected,其中isConnected[i][j]=1表示第i个城市和第j个城市直接相连,而isConnected[i][j]=0表示二者不直接相连。返回矩阵中省份的数量。示例1:输入:isConnected=[[1,1,0],[1,1,0],[0,0,1]]输
一、深度优先遍历深度优先遍历,从初始访问结点出发,我们知道初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点。总结起来可以这样说:每次都在访问完当前结点后首先访问当前结点的第一个邻接结点。我们从这里可以看到,这样的访问策略是优先往纵向挖掘深入,而不是对一个结点的所有邻接结点进行横向访问。具体算法表述如下:1、访问初始结点v,并标记结点v为已访问。2、查找结点v的第一个邻接结点w。3、若w存在,则继续执行4,否则算法结束。4、若w未被访问,对w进行深度优先遍历递归(即把w当做另一个v,然后进行步骤123)
一、深度优先遍历深度优先遍历,从初始访问结点出发,我们知道初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点。总结起来可以这样说:每次都在访问完当前结点后首先访问当前结点的第一个邻接结点。我们从这里可以看到,这样的访问策略是优先往纵向挖掘深入,而不是对一个结点的所有邻接结点进行横向访问。具体算法表述如下:1、访问初始结点v,并标记结点v为已访问。2、查找结点v的第一个邻接结点w。3、若w存在,则继续执行4,否则算法结束。4、若w未被访问,对w进行深度优先遍历递归(即把w当做另一个v,然后进行步骤123)