Leetcode—200. 岛屿数量【中等】

2025每日刷题(248)

Leetcode---200. 岛屿数量

dfs实现代码

go 复制代码
func numIslands(grid [][]byte) int {
    m, n := len(grid), len(grid[0])
    ans := 0
    
    var dfs func(int, int)
    dfs = func(i int, j int) {
        if i < 0 || i >= m || j < 0 || j >= n {
            return
        }

        if grid[i][j] != '1' {
            return
        }

        grid[i][j] = 2
        dfs(i + 1, j)
        dfs(i, j - 1)
        dfs(i - 1, j)
        dfs(i, j + 1)
    }
    for i := range m {
        for j := range n {
            if grid[i][j] == '1' {
                dfs(i, j)
                ans++
            }
        }
    }
    return ans
}

运行结果

bfs实现代码

go 复制代码
type rc struct {
    row int
    column int
}

func numIslands(grid [][]byte) int {
    m, n := len(grid), len(grid[0])
    ans := 0
    directions := [][2]int{{1, 0}, {0, 1}, {-1, 0}, {0, -1}}
    bfs := func(i int, j int) {
        q := make([]rc, 0, 20)
        q = append(q, rc{i, j})
        grid[i][j] = '2'
        for i := 0; i < len(q); i++ {
            cur := q[i]
            for _, d := range directions {
                ti, tj := cur.row + d[0], cur.column + d[1]
                if ti < 0 || ti >= m || tj < 0 || tj >= n {
                    continue
                }
                if grid[ti][tj] != '1' {
                    continue
                }
                grid[ti][tj] = '2'
                q = append(q, rc{ti, tj})
            }
        }
    }

    for i := range m {
        for j := range n {
            if grid[i][j] == '1' {
                ans++
                bfs(i, j)
            }
        }
    }
    return ans
}

运行结果

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

相关推荐
星辰徐哥5 小时前
Spring Boot 微服务架构设计与实现
spring boot·后端·微服务
星辰徐哥5 小时前
Spring Boot 数据导入导出与报表生成
spring boot·后端·ui
明夜之约5 小时前
Spring Boot 自动装配源码
java·spring boot·后端
Leaton Lee5 小时前
Spring Boot分层架构详解:从Controller到Service再到Mapper的完整流程
java·spring boot·后端·架构
Micro麦可乐5 小时前
Spring Boot 实战:从零设计一个短链系统(含完整代码与数据库设计)
数据库·spring boot·后端·哈希算法·雪花算法·短链系统
Jinkxs5 小时前
Resilience4j- 与 Spring Boot 快速集成:自动配置与基础注解使用
java·spring boot·后端
毕设源码_郑学姐5 小时前
计算机毕业设计springboot网络相册设计与实现 基于Spring Boot框架的在线相册管理系统开发与应用 Spring Boot驱动的网络影集设计与实践
spring boot·后端·课程设计
辣机小司5 小时前
【踩坑记录:Spring Boot 配置文件读取值不一致?警惕 YAML 的“八进制陷阱”与 SnakeYAML 版本之谜】
java·spring boot·后端·yaml·踩坑记录
一条小锦吕*5 小时前
基于Spring Boot + 数据可视化 + 协同过滤算法的推荐系统设计与实现(源码+论文+部署全讲解)
spring boot·算法·信息可视化
码农阿豪5 小时前
从零到一:Spring Boot快速接入金仓数据库实战
数据库·spring boot·后端