宝塔建站详细教程,电子商务网站建设设计题,c2c电子商务网站开发,广州住房和城乡建设部网站首页你有一个用于表示一片土地的整数矩阵land#xff0c;该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小#xff0c;返回值需要从小到大排序。示…你有一个用于表示一片土地的整数矩阵land该矩阵中每个点的值代表对应地点的海拔高度。若值为0则表示水域。由垂直、水平或对角连接的水域为池塘。池塘的大小是指相连接的水域的个数。编写一个方法来计算矩阵中所有池塘的大小返回值需要从小到大排序。示例输入[[0,2,1,0],[0,1,0,1],[1,1,0,1],[0,1,0,1]]输出 [1,2,4]来源力扣(LeetCode)链接https://leetcode-cn.com/problems/pond-sizes-lcci著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。————————1、广度优先遍历(1)将数组从左往右从上往下进行遍历当遇到一个数据是0即表示海洋时将该位置放进队列中初始化一个变量nums表示以该位置为起点的海洋面积有多大初始值为nums1同时切记将当前位置的海洋的值从0改为-1表示已经搜索过(2)遍历队列对队列中的每个位置判断其左上上右上左右左下下右下八个位置是否是海洋如果是海洋则将其位置信息放进队列中并使num的值加一同时切记将其海洋值从0变为-1表示其已经搜索过(3)当队列为空时表示与当前位置相连的海洋已经寻找完毕将得到的nums值放进一个列表中这时候需要去寻找下一个点重复上面(1)-(3)的操作直到对整个地图搜索完毕具体Python代码如下class Solution:def pondSizes(self, land: List[List[int]]) - List[int]:rows,cols len(land),len(land[0]) # 计算行数和列数if rows0 or cols0:return []def neighbor(i,j): # 用于寻找当前位置land[i][j]的周围所有数据中是否存在海洋如果存在则返回其坐标信息for nr,nc in [[i-1,j],[i1,j],[i,j-1],[i,j1],[i-1,j-1],[i-1,j1],[i1,j-1],[i1,j1]]:if 0nr2、深度优先遍历(1)将数组从左往右从上往下进行遍历当遇到land[i][j]0时表示遇到海洋基于land[i][j]遍历其周围所有的点。深度优先遍历和广度优先遍历不同广度优先遍历使用队列遍历时一圈一圈往外遍历。而深度优先遍历时当在某点周围遇到海洋点时基于该海洋点再搜索周围的点如果再找到则一直深究下去。其Python代码如下class Solution:def pondSizes(self, land: List[List[int]]) - List[int]:rows,cols len(land),len(land[0])if rows0 or cols0:return []def neighbor(i,j): # 用于遍历某点周围的所有点是否是海洋点for nr,nc in [[i-1,j],[i1,j],[i,j-1],[i,j1],[i-1,j-1],[i-1,j1],[i1,j-1],[i1,j1]]:if 0nr