力扣-200.岛屿数量
创始人
2024-11-12 18:06:31

刷力扣热题–第二十四天:200.岛屿数量
新手第二十四天 奋战敲代码,持之以恒,见证成长

1.题目描述

在这里插入图片描述

2.题目解答

这道题刚开始想的确实想的绞尽脑汁的,看了相关解答才明白的,三种方法,这里想先用两种方法进行实现,一个深度优先,一个广度优先。深度优先就是从一个点遍历直至到底,再向上一层,一个一个遍历,广度优先就更类似于树的层序遍历,最后岛屿的个数就是搜索的次数。
(1)广度优先搜索
使用双端队列的方式第一次见,所以这里参考的是力扣官网的写法,自己还得再理解消化一下~
在这里插入图片描述

(2)深度优先搜索
深度优先目前位置还是不太会实现,等在理解理解,扎实一下算法~
在这里插入图片描述

3.心得体会

(1)广度优先搜索

class Solution(object):     def numIslands(self, grid):         """         :type grid: List[List[str]]         :rtype: int         """         if len(grid) == 0:             return 0         nums = 0         for i in range(len(grid)):             for j in range(len(grid[0])):                 if grid[i][j] == "1":                     nums += 1                     grid[i][j] = "0"                     neighbors = collections.deque([(i, j)])                     while neighbors:                         row, col = neighbors.popleft()                         for x, y in [(row - 1, col), (row + 1, col), (row, col - 1), (row, col + 1)]:                             if 0 <= x < len(grid) and 0 <= y < len(grid[0]) and grid[x][y] == "1":                                 neighbors.append((x, y))                                 grid[x][y] = "0"         return nums          

(2)深度优先搜索

class Solution(object):     def numIslands(self, grid):         """         :type grid: List[List[str]]         :rtype: int         """         def dfs(grid, r, c):             grid[r][c] = 0             nr, nc = len(grid), len(grid[0])             for x, y in [(r - 1, c), (r + 1, c), (r, c - 1), (r, c + 1)]:                 if 0 <= x < nr and 0 <= y < nc and grid[x][y] == "1":                     dfs(grid, x, y)          if len(grid) == 0:             return 0         nums = 0         for i in range(len(grid)):             for j in range(len(grid[0])):                 if grid[i][j] == "1":                     nums += 1                     dfs(grid,i,j)         return nums          

4.做题时长

8月2日 16:45-17:30 终于,这件事情坚持了一个月了,最近一直在看奥运会,奥运精神极大的感染了我,每当五星红旗冉冉升起的时候,就会觉着自己走的每一步都是有意义的,青年一代的热血,未来必将会洒向祖国需要的地方!

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...