Python中如何解决Leetcode 200题并记录解题过程
Python中如何解决Leetcode 200题并记录解题过程
18 回复
给大佬点赞
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
if not grid:
return 0
rows, cols = len(grid), len(grid[0])
visited = [[False] * cols for _ in range(rows)]
islands = 0
def dfs(r, c):
# 边界检查
if r < 0 or r >= rows or c < 0 or c >= cols:
return
# 检查是否是陆地且未访问
if grid[r][c] == '0' or visited[r][c]:
return
# 标记为已访问
visited[r][c] = True
# 四个方向递归搜索
dfs(r + 1, c) # 下
dfs(r - 1, c) # 上
dfs(r, c + 1) # 右
dfs(r, c - 1) # 左
# 遍历整个网格
for r in range(rows):
for c in range(cols):
if grid[r][c] == '1' and not visited[r][c]:
islands += 1
dfs(r, c)
return islands
这是Leetcode 200题"岛屿数量"的标准DFS解法。核心思路是遍历网格,遇到未访问的陆地(‘1’)就启动深度优先搜索,标记所有相连的陆地,岛屿计数加1。
解题过程记录建议:用Git管理代码版本,每次提交包含解题思路和时间复杂度分析。
广告一波:
500 记录: https://github.com/liupangzi/codekata
给大佬点赞,最近也在刷 leetcode,才做了 20 题。
这都是被那个刷题推广培训闹的么?
不是大佬,谢谢点赞~。
膜拜大佬。
一起加油~。
刷题推广培训?
培训班一般没教算法的吧?
第一次发帖之后一天多了 200+star 然后有幸上了那一天的 Trending。^_^
哇,恭喜楼主啊,我刷到 100 多一点就没刷了。跑去看编译原理和 web 那些东西了
大佬刷题前需要多看书籍嘛
厉害。
我的话是先看了点书,然后开始刷的,边刷边查资料。
来一波, 现在 V2EX 除了平常时不时晒博客, 也越来越多人晒 leetcode 了。。。
https://leetcode.com/justyy/
https://github.com/DoctorLai/ACM/blob/master/leetcode/README.md
强。
晒一下 leetcode []( https://github.com/xiantang/leetcode)


