首页 > 编程语言 >每日一道算法题之岛屿数量-洪水填充

每日一道算法题之岛屿数量-洪水填充

时间:2024-12-04 21:10:23浏览次数:8  
标签:填充 洪水 length char int 算法 grid ans public

image

class Solution {

    public static void main(String[] args) {
        new Solution().numIslands(new char[][] { { '1', '0', '1', '1', '0', '1', '1' } });
    }

    public void f(int i, int j, char[][] grid) {

        // 递归结束条件 注意这里要看边界值+以及是字符不是int 0.
        if (i < 0 || j < 0 || i >= grid.length || j >= grid[0].length || grid[i][j] == '0') {
            // 遇到边界+值为'0',直接返回
            return;
        }
        grid[i][j] = '0'; // 渲染为0.

        // 向四个方向渲染。
        f(i + 1, j, grid);
        f(i, j + 1, grid);
        f(i - 1, j, grid);
        f(i, j - 1, grid);
    }

    public int numIslands(char[][] grid) {
        // 思路:并查集。每个坐标来确定唯一的索引。
        // 思路2:洪水填充。
        int m = grid.length;
        int n = grid[0].length;
        int ans = 0;

        for (int i = 0; i < m; i++) {
            for (int j = 0; j < n; j++) {
                if (grid[i][j] == '1') {
                    ans++;
                    f(i, j, grid);
                }
            }
        }
        System.out.println(ans);
        return ans;
    }
}

标签:填充,洪水,length,char,int,算法,grid,ans,public
From: https://www.cnblogs.com/clllll/p/18587208

相关文章

  • 基于遗传优化算法的TSP问题求解matlab仿真
    1.程序功能描述基于遗传优化算法的TSP问题求解,分别对四个不同的城市坐标进行路径搜索。2.测试软件版本以及运行结果展示MATLAB2022A版本运行  3.核心程序forij=1:Miters%计算当前迭代周期种群适应度%删除与交叉区域相同元素forj=1:Rcc......
  • 分类算法中的样本不平衡问题及其解决方案
    一、样本不平衡问题概述在机器学习的分类任务中,样本不平衡是指不同类别训练样本数量存在显著差异的现象。这一差异会给模型训练和性能评估带来挑战,尤其在处理少数类样本时,模型可能难以有效学习其特征。以二分类为例,理想情况下正负样本数量应相对平衡,如各1000个样本时,模......
  • 每日算法练习
     小伙伴们大家好,好久没更新了,实在是没有空,不过从今天开始恢复更新了,今天给大家带来几道算法题目。题目一1.算法思想 这道题目是一道博弈题目,我们这样分析:对于小紫来说,自己交换的时机肯定是小红拿到的数越大越好,自己拿个小的跟她交换就行。 因此存在如下情况:如果小红......
  • 算法网关视频分析网关消防车通道占用识别助力消防通道畅通守护生命线
    随着城市化进程的加快,消防安全成为城市管理中的重要一环。消防车通道作为火灾发生时救援车辆的主要通道,其畅通无阻至关重要。然而,在实际生活中,消防车通道被占用或堵塞的现象屡见不鲜,给火灾救援工作带来了极大的阻碍。一、消防车通道占用识别算法的重要性消防车通道占用不仅影响......
  • 智慧车辆算法视频分析服务器渣土车偷拉乱倒识别算法:”智慧城市守卫者“
    随着城市化进程的加速,渣土车在建筑、道路等施工领域扮演着至关重要的角色。然而,由于管理和监控手段的不足,渣土车的偷拉乱倒现象日益严重,给城市环境造成了很大影响。针对这一问题,我们来探讨一下视频分析服务器在渣土车偷拉乱倒识别中的应用及相关算法。一、渣土车偷拉乱倒的现状......
  • 在算法分析中,复杂度和阶,这两个概念分别表示什么?它们之间存在怎样的关系?
    在算法分析中,复杂度和阶是两个非常重要的概念,它们用于描述算法的时间性能或空间性能。虽然这两个概念有些重叠,但它们的含义和使用场景略有不同。1.复杂度(Complexity)复杂度是用来描述算法在运行时所需资源(如时间或空间)与输入规模之间关系的一个度量。最常用的是时......
  • 代码随想录算法训练营第十六天(LeetCode513.找树左下角的值;LeetCode112.路径总和;LeetCo
    LeetCode513.找树左下角的值题目连接:找树左下角的值题目连接代码递归法/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval){this.......
  • 求教0基础入门大模型的学习路线?java出身,数学良好,希望入局大模型算法,有无必要从cnn学起
    目录前排提示,文末有大模型AGI-CSDN独家资料包哦!前言本人本科学历java开发出身,数学基础良好,希望入局大模型算法,有无必要从cnn学起?transformer、bert是否必须要学?希望能在最短的时间掌握相关知识…近年来,随着大模型的火爆,他的领域几乎涉及到了生活中的方方面面:那么如何快......
  • 代码随想录算法训练营第二十二天|77.组合、216.组合总和iii、17.电话号码的字母组合
    题号来自leetcode77.组合回溯算法三部曲,回溯算法的理论基础:代码随想录1.递归函数的传参和返回值:用两个全局变量List<List<Interger>>result和List<Integer>path来分别存放最终结果和每次符合条件的结果。符合题目要求的n和k肯定是要传入的,还要再定义一个startIndex,这个参......
  • 基于 FPGA 的一维卷积神经网络(1D-CNN)算法加速
    Q:大佬们,谁做过FPGA的一维卷积神经网络(1D-CNN)算法加速么?除了1D-CNN,还有哪些神经网络算法可以在FPGA上加速?A:以下是一个基于FPGA的一维卷积神经网络(1D-CNN)算法加速实现的案例,仅供参考:项目案例概述:该项目旨在通过FPGA实现1D-CNN的加速,以提高对一维序列数据的处理速度。......