【岛屿最大面积】BJ某IT厂笔试题

该题在LeetCode上能找到原题,大致意思是,给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0。如下图表示。
在这里插入图片描述
由于IT厂面试都需要自测输入输出,建议小伙伴们去练习一下自测输入,我这里使用的是Java。该题大致解法就是使用递归。

    public static void main(String[] args) {Scanner in = new Scanner(System.in);int l = in.nextInt();int[][] input = new int[l][l];for (int i = 0; i < l; i++) {for (int j = 0; j < l; j++) {input[i][j] = in.nextInt();}}for (int i = 0; i < input.length; i++) {for (int j = 0; j < input[i].length; j++) {System.out.print(input[i][j] + "");}System.out.print("\n");}int result = maxArea(input);System.out.println("岛屿最大面积= " + result);}public static int maxArea(int[][] input){int max = 0;for (int i = 0; i < input.length; i++) {for (int j = 0; j < input[i].length; j++) {max = Math.max(max, count(i, j, input));}}return max;}public static int count(int i, int j, int[][] input) {if (i < 0 || j < 0 || i >= input.length || j >= input[0].length || input[i][j] != 1) {return 0;}input[i][j] = 0;return 1 + count(i, j - 1, input) + count(i, j + 1, input)+ count(i - 1, j, input) + count(i + 1, j, input);}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《MySQL》事务

文章目录 概念事务的操作属性&#xff08;aicd&#xff09; 概念 一组DML语句&#xff0c;这组语句要一次性执行完毕&#xff0c;是一个整体 为什么要有事务&#xff1f; 为应用层提供便捷服务 事务的操作 有一stu表 # 查看事务提交方式(默认是开启的) show variables like au…

uniapp调接口出现跨域问题。

今天在写uniapp项目的时候&#xff0c;使用在线模拟接口的时候&#xff0c;出现跨域问题。 【问题描述】&#xff1a; ①在内嵌浏览器运行&#xff0c;不会出现跨域问题&#xff0c;好像是内嵌浏览器自动去掉了跨域问题。 ②在外部浏览器调用的时候会出现跨域问题。&#xf…

深入理解Spring事务传播机制-原理与实例说明

事务传播机制 简化记忆版本 REQUIRED:有事务加入&#xff0c;没有事务创建&#xff0c;Spring默认MANDATORY:必须在事务中被调用&#xff0c;没有抛异常SUPPORTS:有事务加入&#xff0c;没有以非事务运行NOT_SUPPORTED:不需要事务&#xff0c;有事务则挂起&#xff0c;避免回…

黑马头条 分布式任务调度 定时计算热点文章、xxl-job、kafkaStream

xxl-Job分布式任务调度 1 今日内容 1.1 需求分析 目前实现的思路&#xff1a;从数据库直接按照发布时间倒序查询 问题1&#xff1a; 如何访问量较大&#xff0c;直接查询数据库&#xff0c;压力较大问题2&#xff1a; 新发布的文章会展示在前面&#xff0c;并不是热点文章 1.2 …

## 流体力学或湍流理论中壁函数(wall function)

流体力学或湍流理论中壁函数&#xff08;wall function&#xff09; 一、壁函数&#xff08;wall function&#xff09;概念 在流体力学或湍流理论中&#xff0c;壁函数是基于壁定律得到的无量纲速度 u u^ u与无量纲壁距 y y^ y之间的函数关系。 在对数层区域&#xff0c;速…

WooCommerce适合企业电子商务吗?

目录 成功开展电子商务业务变得比以往任何时候都容易。市场上有几个现成的平台&#xff0c;完全有可能将一个初步的想法快速转变为在线贸易业务&#xff0c;并源源不断地收到订单。 什么是 WooCommerce&#xff1f; 为什么您应该考虑使用 WooCommerce 很灵活 重量轻且功…

Sentinel 规则详解

Sentinel 规则 流控规则 flow1、QPS流控2、并发线程数流控3、流控模式4、流控效果 熔断&#xff08;降级&#xff09;规则 degrade1、慢调用比例2、异常比例3、异常数 热点规则 param-flow授权规则 authority1、应用场景2、自定义来源3、授权规则配置 系统规则 前言&#xff1a…

GitLab 私有 Go Modules 的搭建配置

配置步骤 配置 GitLab Access Token 将 GitLab Access Token 写入到 ~/.netrc 文件里(也就是根目录下的 .netrc 文件),没有则新建,并写入内容:machine git.tenorshare.cn login ${USER_NAME} password ${GITLAB_ACCESS_TOKEN},其中 ${USER_NAME} 是GitLab 用户名,${GIT…

【Java基础教程】(十八)包及访问权限篇 · 下:Java编程中的权限控制修饰符、单例设计模式 (Singleton)和多例设计模式的综合探析~

Java基础教程之包及访问权限 下 本节学习目标1️⃣ 访问控制权限2️⃣ 命名规范3️⃣ 单例设计模式 (Singleton)4️⃣ 多例设计模式 本节学习目标 掌握Java 中的4种访问权限&#xff1b;掌握Java 语言的命名规范&#xff1b;掌握单例设计模式与多例设计模式的定义结构&#x…

Java处理doc类型的Word文档转换成html(按顺序保留格式+图片)

最新有个新需求&#xff0c;就是doc文档转换html内容倒不是很难&#xff0c;给大家分享一下&#xff0c;总体思路就是按doc转html的思路来走&#xff0c;唯一缺点是不会自动转换图片&#xff0c;图片是要手动转成base64&#xff0c;默认是有html、body、head、meta等等标签&…

2023四大进销存软件推荐,第一款适合中小商户使用!

在当今竞争激烈的商业环境中&#xff0c;企业或商户迫切需要使用进销存管理软件&#xff0c;来优化库存控制、提高运营效率、降低成本&#xff0c;并加强与供应链合作伙伴之间的协作和沟通。 为了帮助企业选择适合自己需求的进销存软件&#xff0c;我们特别整理了2023年市面上比…

【Java虚拟机学习1】JVM运行时数据区

JVM运行时数据区 一、前言 我们知道Java程序是运行在JVM&#xff08;Java虚拟机&#xff09;上的&#xff0c;Java程序运行时会占用一定的内存&#xff0c;在虚拟机自动管理机制的帮助下&#xff0c;不再需要为每一个new操作去写配对的delete/free代码&#xff0c;不容易出现…