Python中如何解决Leetcode 200题并记录解题过程

200 只 Leetcode 记录。

仓库地址 Python:

https://github.com/HuberTRoy/leetCode


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管理代码版本,每次提交包含解题思路和时间复杂度分析。

给大佬点赞,最近也在刷 leetcode,才做了 20 题。

这都是被那个刷题推广培训闹的么?


不是大佬,谢谢点赞~。


膜拜大佬。


一起加油~。


刷题推广培训?
培训班一般没教算法的吧?

200 题好多 star 啊。。


第一次发帖之后一天多了 200+star 然后有幸上了那一天的 Trending。^_^

哇,恭喜楼主啊,我刷到 100 多一点就没刷了。跑去看编译原理和 web 那些东西了

大佬刷题前需要多看书籍嘛


厉害。


我的话是先看了点书,然后开始刷的,边刷边查资料。

来一波, 现在 V2EX 除了平常时不时晒博客, 也越来越多人晒 leetcode 了。。。
https://leetcode.com/justyy/
https://github.com/DoctorLai/ACM/blob/master/leetcode/README.md

回到顶部