首页 > 其他分享 >最大岛屿体积,图的用法

最大岛屿体积,图的用法

时间:2023-07-16 22:00:24浏览次数:43  
标签:arr scanner int res 岛屿 dfs 用法 体积 max

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num1 = scanner.nextInt();
        int num2 = scanner.nextInt();
        int[][] arr = new int[num1][num2];
        while (scanner.hasNext()){
            for (int i = 0; i < num1; i++) {
                for (int j = 0; j < num2; j++) {
                    arr[i][j] = scanner.nextInt();
                }
            }
            int max = 0;
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                    if(arr[i][j] > 0){
                        int val = dfs(i,j,arr);
                        max = Math.max(max,val);
                    }
                }
            }
            System.out.println(max);
        }

    }

    private static int dfs(int i, int j,int[][] arr) {
        int res =0;
        if(i < 0 || i >= arr.length || j < 0 || j >= arr[0].length || arr[i][j] == 0){
            return 0;
        }
        res += arr[i][j];
        arr[i][j] = 0;
        res += dfs(i-1,j,arr);
        res +=dfs(i+1,j,arr);
        res +=dfs(i,j+1,arr);
        res +=dfs(i,j-1,arr);
        return res;

    }

  

最大岛屿体积

题目描述

给你一个由 大于0的数(陆地)和 0(水)组成的的二维网格,请你计算网格中最大岛屿的体积。陆地的数表示所在岛屿的体积。

岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。

此外,你可以假设该网格的四条边均被水包围。

 

  总结:找到一个大于0的岛,把它的体积累计到总和上,然后把他置为0,然后把他上下左右的也这样处理,并递归,这样就把这一片岛屿体积求出来了,然后比较最大值。

标签:arr,scanner,int,res,岛屿,dfs,用法,体积,max
From: https://www.cnblogs.com/sgj191024/p/17558676.html

相关文章

  • 快速上手 | Datavines 两表值比对规则用法
    Datavines是一站式开源数据可观测性平台,提供元数据管理、数据概览报告、数据质量管理,数据分布查询、数据趋势洞察等核心能力,致力于帮助用户全面地了解和掌管数据,让您做到心中有数。场景比较某张表(有时间分区列)今天的数据量和昨天的数据量,如果今天的数据量小于昨天的数据量就......
  • JSON.stringify的其他用法
    1.过滤属性,只将name和age转为字符串,其他的属性不要JSON.stringify(person,['name','age'])2.特定属性,返回特定值或不返回值//指定gender不返回内容JSON.stringify(person,(key,val)=>{if(key=='gender'){//返回undefined,将会过滤掉gender属性,同1......
  • mysql begin end 用法
    MySQL中begin...end的用法在MySQL中,begin...end是一种用于定义事务(transaction)的语法结构。事务是数据库操作的逻辑单元,可以将多个操作当作一个原子操作来执行,即要么全部成功,要么全部失败回滚。1.事务的概念事务是数据库操作的最小逻辑单位,它是由一系列的SQL语句组成的逻辑操作......
  • 关于 Observable 对象调用 subscribe 方法时不传递任何参数值的用法讨论
    在RxJS中,subscribe方法是用于订阅Observable对象并接收数据的关键方法。通过subscribe方法,我们可以注册观察者(Observer)来处理Observable发出的数据、错误和完成信号。该方法接收三个可选的回调函数作为参数:next、error和complete。下面是subscribe方法的作用和示例......
  • FFmpeg中overlay滤镜用法-水印及画中画
    1.overlay技术简介overlay技术又称视频叠加技术。overlay视频技术使用非常广泛,常见的例子有,电视屏幕右上角显示的电视台台标,以及画中画功能。画中画是指在一个大的视频播放窗口中还存在一个小播放窗口,两个窗口不同的视频内容同时播放。overlay技术中涉及两个窗口,通常把较......
  • scrapy-redis 用法举例 解析
     scrapy-redis是一个用于将Scrapy分布式爬虫与Redis数据库相结合的库,可以使得多个Scrapy爬虫实例共享爬取任务队列和爬取结果数据等信息。下面是scrapy-redis的用法举例:安装scrapy-redis:pipinstallscrapy-redis 假设我们要爬取豆瓣电影TOP250的电影信息,......
  • dede织梦标签,dede:arclist用法与详解
    标签名称:arclist标记简介:织梦常用标记,也称为自由列表标记,其中imglist、imginfolist、specart、coolart、autolist都是由该标记所定义的不同属性延伸出来的别名标记。功能说明:获取指定文档列表适用范围:全局使用基本语法:{dede:arclist?flag='h'typeid=''row=''col=''titlelen=......
  • scrapy用法举例 (Scrapy爬取豆瓣电影Top250)
    Scrapy是一个Python的爬虫框架,用于快速开发和部署Web爬虫。它提供了一套完整的爬虫工具,包括爬虫的调度、数据下载、数据处理和存储等功能,同时也支持多线程、分布式和异步IO等高级特性。以下是Scrapy的用法介绍:1.安装ScrapyScrapy可以通过pip安装,命令如下:pipinstal......
  • nginx的一点小用法-代理国外s3对象存储加速
    缘由:有一套环境部署在aws新加坡区,资源使用s3对象存储,也用了cloudfront加速,但是but国内访问最近抽筋,也特意看了一下解析的地址IP....加速的地址在usa.....资源加速太慢了就想到了用nginx缓存加速一下!当然了还可以用国内腾讯云cosor阿里云oss同步到国内?但是生命周期,同步成本估计......
  • Find命令的7种用法
    可以很肯定地说,find命令是Linux后台开发人员必须熟知的操作之一,除非您使用的是WindowsServer。对于技术面试,它也是一个热门话题。让我们看一道真题:如果你的Linux服务器上有一个名为logs的目录,如何删除该目录下最后一次访问时间超过一年的日志文件呢?这种情况很常见,但令......