力扣 岛屿数量

从某个点找,不断找相邻位置。

题目

岛屿中被“0”隔开后 ,是每一小块状的“1”,本题在问有多少块。可以用dfs进行搜索,遍历每一个点,把每一个点的上下左右做搜索检测,当检测到就标记为“0”表示已访问过,直到搜不到“1”,然后搜索完后数量加一即找到一块了。这样的方式看起来像是一种连线的方式,一般遍历会从第一个点开始找,然后找临近点,找到有就连起来一块。然后数一下有几块,就是有几个网格中的岛屿了。

时间复杂度:O(MN),空间复杂度:O(MN)。

class Solution {
    void dfs(char[][] grid, int r, int c) {
        int nr = grid.length;
        int nc = grid[0].length;

        if (r < 0 || c < 0 || r >= nr || c >= nc || grid[r][c] == '0') {
            return;
        }

        grid[r][c] = '0';
        dfs(grid, r - 1, c);
        dfs(grid, r + 1, c);
        dfs(grid, r, c - 1);
        dfs(grid, r, c + 1);
    }

    public int numIslands(char[][] grid) {
        if (grid == null || grid.length == 0) {
            return 0;
        }

        int nr = grid.length;
        int nc = grid[0].length;
        int num_islands = 0;
        for (int r = 0; r < nr; ++r) {
            for (int c = 0; c < nc; ++c) {
                if (grid[r][c] == '1') {
                    ++num_islands;
                    dfs(grid, r, c);
                }
            }
        }

        return num_islands;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/953612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ssl与ipsec的区别

ssl与ipsec的区别&#xff1a; 1.概念不同: ssl是一种安全协议&#xff0c;可通过Internet安全地发送信息&#xff0c;而ipsec即Internet协议安全性&#xff0c;是为Internet协议提供安全性的一组协议。 2.所在层不同: ssl在传输和应用层中工作&#xff0c;而ipsec在Interne…

基于大语言模型的组合优化

摘要&#xff1a;组合优化&#xff08;Combinatorial Optimization, CO&#xff09;对于提高工程应用的效率和性能至关重要。随着问题规模的增大和依赖关系的复杂化&#xff0c;找到最优解变得极具挑战性。在处理现实世界的工程问题时&#xff0c;基于纯数学推理的算法存在局限…

批量识别图片型PDF指定区域内容识别保存表格+PDF批量改名:技术难题与项目实战总结

相关项目实战&#xff1a; 一、引言 在当今数字化办公环境中&#xff0c;批量处理PDF文件中的表格数据并进行改名是一项常见但具有挑战性的任务。无论是从大量的财务报销凭证、学术研究报告还是项目文档中提取表格信息&#xff0c;都可能遇到各种各样的技术难题。 二、批量提…

open3d+opencv实现矩形框裁剪点云操作(C++)

&#x1f451;主页&#xff1a;吾名招财 &#x1f453;简介&#xff1a;工科学硕&#xff0c;研究方向机器视觉&#xff0c;爱好较广泛… ​&#x1f4ab;签名&#xff1a;面朝大海&#xff0c;春暖花开&#xff01; open3dopencv实现矩形框裁剪点云操作&#xff08;C&#xff…

LabVIEW光流跟踪算法

1. 光流跟踪算法的概述 光流&#xff08;Optical Flow&#xff09;是一种图像处理技术&#xff0c;用于估算图像中像素点的运动。通过比较连续帧图像&#xff0c;光流算法可以分析图像中的运动信息&#xff0c;广泛用于目标跟踪、运动检测和视频处理等场景。该示例使用了NI Vi…

django在线考试系统

Django在线考试系统是一种基于Django框架开发的在线考试平台&#xff0c;它提供了完整的在线考试解决方案。 一、系统概述 Django在线考试系统旨在为用户提供便捷、高效的在线考试环境&#xff0c;满足教育机构、企业、个人等不同场景下的考试需求。通过该系统&#xff0c;用…

AI浪潮下的IT变革之路:机遇、挑战与重塑未来

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 AI浪…

Oracle 分区索引简介

目录 一. 什么是分区索引二. 分区索引的种类2.1 局部分区索引&#xff08;Local Partitioned Index&#xff09;2.2 全局分区索引&#xff08;Global Partitioned Index&#xff09; 三. 分区索引的创建四. 分区索引查看4.1 USER_IND_COLUMNS 表4.2 USER_INDEXES 表 五. 分区索…

Spring bean的生命周期和扩展

接AnnotationConfigApplicationContext流程看实例化的beanPostProcessor-CSDN博客&#xff0c;以具体实例看bean生命周期的一些执行阶段 bean生命周期流程 生命周期扩展处理说明实例化:createBeanInstance 构造方法&#xff0c; 如Autowired的构造方法注入依赖bean 如UserSer…

【再谈设计模式】模板方法模式 - 算法骨架的构建者

一、引言 在软件工程、软件开发过程中&#xff0c;我们经常会遇到一些算法或者业务逻辑具有固定的流程步骤&#xff0c;但其中个别步骤的实现可能会因具体情况而有所不同的情况。模板方法设计模式&#xff08;Template Method Design Pattern&#xff09;就为解决这类问题提供了…

01 Oracle自学环境搭建(Windows系统)

1 Oracle12C安装 1.1 下载 官网地址&#xff1a;https://www.oracle.com/ 进入官网→Resource→Customer Downloads 如果没有登录&#xff0c;会提示登录后后才能下载 选择适合自己的版本&#xff08;我电脑是Windows系统 64位&#xff09; 选择需要的安装包进行下载 双击下载…

java语法知识(二)

1. class文件可以直接拖动到idea中&#xff0c;显示源码。 2.idea快捷键&#xff1a; sout : System.out.println 输出内容.sout :---》 System.out.println(输出内容); psvm: public static void main() 格式化&#xff1a;ctrl altL 复制粘贴&#xff1a;ctrld 3.注释…

macos python环境安装

安装的问题 mac 安装 python brew install python 通过brew安装的python安装路径 打开终端&#xff0c;输入brew search python&#xff1a; 为啥会被安装在这里 Frameworks 的用途&#xff1a;/Library/Frameworks 是 macOS 系统中专门用于存放框架的目录。框架是一种结构…

计算机网络 笔记 数据链路层 2

1,信道划分&#xff1a; (1)时分复用TDM 将时间等分为“TDM帧”&#xff0c;每个TDM帧内部等分为m个时隙&#xff0c;m个用户对应m个时隙 缺点&#xff1a;每个节点只分到了总带宽的1/m,如果有部分的1节点不发出数据&#xff0c;那么就会在这个时间信道被闲置&#xff0c;利用…

ElasticSearch在Windows环境搭建测试

引子 也持续关注大数据相关内容一段时间&#xff0c;大数据内容很多。想了下还是从目前项目需求侧出发&#xff0c;进行相关学习。Elasticsearch&#xff08;ES&#xff09;是位于 Elastic Stack&#xff08;ELK stack&#xff09; 核心的分布式搜索和分析引擎。Logstash 和 B…

计算机网络 笔记 网络层1

网络层功能概述 主要的任务是把分组从源端传输到目的端&#xff0c;为分组交换网上的不同主句提供通信服务&#xff0c;网络层的传输单位是数据报。 主要的功能&#xff1b; 1&#xff0c;路由选择&#xff1a;路由选择指网络层根据特定算法&#xff0c;为数据包从源节点到目…

Rubyer-WPF:打造优雅、精致的 WPF 用户界面

在桌面应用开发领域&#xff0c;WPF&#xff08;Windows Presentation Foundation&#xff09;凭借其强大的 UI 设计能力和丰富的功能&#xff0c;始终是开发者们青睐的工具之一。今天&#xff0c;我将为大家介绍一款专注于 WPF UI 设计的优秀项目——Rubyer-WPF&#xff0c;它…

设计模式 行为型 访问者模式(Visitor Pattern)与 常见技术框架应用 解析

访问者模式&#xff08;Visitor Pattern&#xff09;是一种行为设计模式&#xff0c;它允许你在不改变元素类的前提下定义作用于这些元素的新操作。这种模式将算法与对象结构分离&#xff0c;使得可以独立地变化那些保存在复杂对象结构中的元素的操作。 假设我们有一个复杂的对…

继承多态语法糖

抽象类(通用) 子类继承父类方法后&#xff0c;这个子类对象如果执行方法的话&#xff0c;只要子类重写了就执行子类的&#xff0c;不执行父类的。 /*** 功能&#xff1a;* 作者&#xff1a;IT伟* 日期&#xff1a;2025/1/13 19:20*/ // 抽象类 A abstract class A {// 构造函…

MarS:一个由生成基础模型驱动的金融市场模拟引擎

“MARS: A FINANCIAL MARKET SIMULATION ENGINE POWERED BY GENERATIVE FOUNDATION MODEL” 项目主页&#xff1a;https://mars-lmm.github.io/ 论文地址&#xff1a;https://arxiv.org/pdf/2409.07486 Github地址&#xff1a;https://github.com/microsoft/MarS/ 摘要 生成…