DeepSeek    LeetCode 200. 岛屿数量 Java实现
LeetCode 200. 岛屿数量题目描述给你一个由 ‘1’陆地和 ‘0’水组成的二维网格请你计算网格中岛屿的数量。岛屿总是被水包围并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。解法一DFS推荐遍历网格遇到 ‘1’ 就计数 1然后用 DFS 把整个岛屿沉没标记为 ‘0’。classSolution{publicintnumIslands(char[][]grid){if(gridnull||grid.length0)return0;introwsgrid.length;intcolsgrid[0].length;intcount0;for(inti0;irows;i){for(intj0;jcols;j){if(grid[i][j]1){count;dfs(grid,i,j);}}}returncount;}privatevoiddfs(char[][]grid,inti,intj){// 边界检查 水检查if(i0||igrid.length||j0||jgrid[0].length||grid[i][j]0){return;}// 标记为已访问沉没grid[i][j]0;// 四个方向递归dfs(grid,i1,j);dfs(grid,i-1,j);dfs(grid,i,j1);dfs(grid,i,j-1);}}复杂度分析· 时间复杂度O(M × N)每个格子最多访问一次· 空间复杂度O(M × N)最坏情况全是陆地递归栈深度解法二BFS避免栈溢出用队列替代递归适合大网格防止栈溢出。classSolution{publicintnumIslands(char[][]grid){if(gridnull||grid.length0)return0;introwsgrid.length;intcolsgrid[0].length;intcount0;int[][]dirs{{1,0},{-1,0},{0,1},{0,-1}};for(inti0;irows;i){for(intj0;jcols;j){if(grid[i][j]1){count;// BFSQueueint[]queuenewLinkedList();queue.offer(newint[]{i,j});grid[i][j]0;while(!queue.isEmpty()){int[]curqueue.poll();for(int[]d:dirs){intnicur[0]d[0];intnjcur[1]d[1];if(ni0nirowsnj0njcolsgrid[ni][nj]1){grid[ni][nj]0;queue.offer(newint[]{ni,nj});}}}}}}returncount;}}复杂度分析· 时间复杂度O(M × N)· 空间复杂度O(min(M, N))队列最坏情况解法三并查集Union-Find思路把每块陆地初始为独立集合相邻陆地合并最后统计集合个数。classSolution{privateint[]parent;privateintcount;publicintnumIslands(char[][]grid){if(gridnull||grid.length0)return0;introwsgrid.length;intcolsgrid[0].length;parentnewint[rows*cols];count0;// 初始化每个陆地是一个独立集合for(inti0;irows;i){for(intj0;jcols;j){if(grid[i][j]1){parent[i*colsj]i*colsj;count;}}}// 只需要向右和向下合并避免重复for(inti0;irows;i){for(intj0;jcols;j){if(grid[i][j]1){// 向下合并if(i1rowsgrid[i1][j]1){union(i*colsj,(i1)*colsj);}// 向右合并if(j1colsgrid[i][j1]1){union(i*colsj,i*colsj1);}}}}returncount;}privateintfind(intx){// 路径压缩if(parent[x]!x){parent[x]find(parent[x]);}returnparent[x];}privatevoidunion(intx,inty){introotXfind(x);introotYfind(y);if(rootX!rootY){parent[rootX]rootY;count--;// 合并后岛屿数量减 1}}}复杂度分析· 时间复杂度O(M × N × α)α 为阿克曼函数反函数近似常数· 空间复杂度O(M × N)三种解法对比解法 时间复杂度 空间复杂度 特点DFS O(M×N) O(M×N) 代码简洁可能栈溢出BFS O(M×N) O(min(M,N)) 安全代码略长并查集 O(M×N×α) O(M×N) 适合动态连通性问题易错点提示边界检查放在访问前避免数组越界入队时就标记 ‘0’BFS 尤其重要否则会重复入队修改原数组是常见做法若不允许修改需额外 boolean[][] visited面试建议· 首选 DFS代码最简洁面试官通常接受· 若面试官追问网格很大怎么办可以提 BFS 或迭代式 DFS· 若题目变形为动态加陆地如 LeetCode 305则必须用并查集

相关新闻

企业级数据爬虫集工具实测,Bright Data凭什么成了我的首选

企业级数据爬虫集工具实测,Bright Data凭什么成了我的首选

最贵的不是模型,是数据 最近在折腾机器人训练数据(就是 VLA,视觉-语言-动作模型那种),我发现一个扎心的事实:最烧钱的不是模型和硬件,是训练数据,将近占到50%成本,多可怕…

2026/10/1 17:15:05 阅读更多 →
基于S7-200 PLC与组态王的矿井通风控制系统设计与调试

基于S7-200 PLC与组态王的矿井通风控制系统设计与调试

矿井通风系统是煤矿安全运行的生命线,这句话在矿上干了十年的人体会最深。井下瓦斯一旦积聚,温度湿度一上来,光靠自然通风根本顶不住。我前两年接手了一套基于S7-200 PLC和组态王的矿井通风控制改造项目,目标是实现主通风机的自动…

2026/10/1 17:15:05 阅读更多 →
因果图法:功能测试中的逻辑显微镜与AI时代质量标尺

因果图法:功能测试中的逻辑显微镜与AI时代质量标尺

1. 为什么因果图法在今天依然不可替代——它不是老古董,而是功能测试的“逻辑显微镜”你翻过测试用例设计教材,大概率见过“因果图法”四个字,旁边配着几个圆圈加箭头的示意图,底下写着“适用于输入条件存在约束关系的场景”。但说…

2026/10/1 17:15:05 阅读更多 →

最新新闻

GPUStack开启DSpark JSON增强:DeepSeek结构化输出提速3.8倍

GPUStack开启DSpark JSON增强:DeepSeek结构化输出提速3.8倍

上个月我在跑一个文档解析类的 Agent 任务时,被一个现象卡了很久:模型输出整体上看很正常,但只要我要求它返回 JSON,响应时间就肉眼可见地慢下来。当时集群用的是 GPUStack,底座是 DeepSeek,GPU 利用率并没…

2026/10/1 18:40:46 阅读更多 →
异步事件驱动重构:AI编程能力的真实边界与工程落地

异步事件驱动重构:AI编程能力的真实边界与工程落地

1. 这不是模型发布会,是工程师的深夜压测现场说实话,GPT-6 Sol、Claude Opus 4.8、Gemini 3.5 Flash——这三个名字最近在技术群里刷屏的速度,快过我去年部署K8s集群时etcd崩溃的频率。但真正让我坐下来把键盘敲热的,不是它们官网…

2026/10/1 18:40:46 阅读更多 →
FPGA调试中的ILA时钟设置:采样原理、配置流程与跨时钟域避坑指南

FPGA调试中的ILA时钟设置:采样原理、配置流程与跨时钟域避坑指南

搞FPGA调试这么多年,我发现自己和周围同事栽过最多的跟头,不在RTL逻辑本身,反而在调试工具的使用细节上。尤其是Vivado里ILA调试核的时钟设置,这个问题看着不起眼,却能让你的波形窗口一片空白,也能让一个明…

2026/10/1 18:40:46 阅读更多 →
SpringBoot个人健康管理系统:从设计到答辩全攻略

SpringBoot个人健康管理系统:从设计到答辩全攻略

最近我遇到不少计算机专业的朋友在挑毕业设计题目,问得最多的就是“基于SpringBoot的个人健康管理系统”。这个题目乍一看平平无奇,好像就是一套标准的增删改查,但你要真把它做成一个能在答辩现场立住、能说明白“健康监测、行为追踪、生活方…

2026/10/1 18:40:46 阅读更多 →
Bedrock质量与效率双优实战:拒绝谣言,用现有模型落地

Bedrock质量与效率双优实战:拒绝谣言,用现有模型落地

我注意到您提供的输入内容中存在严重的信息矛盾与事实偏差,需要先做关键澄清: 目前(截至2024年7月)并不存在所谓“GPT-6 Sol”或“GPT-6 Luna”模型,OpenAI未发布、未命名、未开源任何代号为GPT-6的模型,A…

2026/10/1 18:40:46 阅读更多 →
K9s v0.1.3 版本解析:热键体系重构、多集群配置迁移与 ReplicationController 支持

K9s v0.1.3 版本解析:热键体系重构、多集群配置迁移与 ReplicationController 支持

云原生容器编排CLI运维 【免费下载链接】k9s 🐶 Kubernetes CLI To Manage Your Clusters In Style! 项目地址: https://gitcode.com/GitHub_Trending/k9s/k9s 点击查看 免费下载 导读 K9s v0.1.3 是该项目早期发展中一次承上启下的关键发布&#xff1…

2026/10/1 18:39:46 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →