LeetCode 695. Max Area of Island javascript解决方案

题意:
寻找最大岛。
leetcode.com/problems/ma…
传入:
[[0,0,1,0,0,0,0,1,0,0,0,0,0],
 [0,0,0,0,0,0,0,1,1,1,0,0,0],
 [0,1,1,0,1,0,0,0,0,0,0,0,0],
 [0,1,0,0,1,1,0,0,1,0,1,0,0],
 [0,1,0,0,1,1,0,0,1,1,1,0,0],
 [0,0,0,0,0,0,0,0,0,0,1,0,0],
 [0,0,0,0,0,0,0,1,1,1,0,0,0],
 [0,0,0,0,0,0,0,1,1,0,0,0,0]]

传出:
6


思路:
从左上角开始一个个往右下角数,每一个数出来连块最大数,然后输出。
连块最大数计算:按照 上、右、下、左 方向,取得连着的值,推入暂存数组,再对连着的值进行递归调用,再推入暂存数组。

代码:

/**
* @param {number[][]} grid
* @return {number}
*/
var maxAreaOfIsland = function(grid) {function add(list, i , j){if(!list)return;for(var k = 0; k < list.length; ++k){if(list[k].i === i && list[k].j === j)return false;}list.push({i, j});return true;}function deepSearch(i, j, list){if(!list)list = [];if(grid[i][j]){add(list, i, j);}if(j > 0 && grid[i][j - 1]){if(add(list, i, j - 1)){deepSearch(i, j - 1, list);}}if(i < grid.length - 1 && grid[i + 1][j]){if(add(list, i + 1, j)){deepSearch(i + 1, j, list);}}if(grid.length && j < grid[0].length - 1 && grid[i][j + 1]){if(add(list, i, j + 1)){deepSearch(i, j + 1, list);}}if(i > 0 && grid[i - 1][j]){if(add(list, i - 1, j)){deepSearch(i - 1, j, list);}}return list.length;}function countArea(i, j){if(j > 0 && grid[i][j - 1]) // 不是最左上角的不countreturn 0;if(i > 0 && grid[i - 1][j])return 0;return deepSearch(i, j);}var max = 0;for(var i = 0;i < grid.length; ++i){for(var j = 0;j < grid[i].length; ++j){var obj = grid[i][j];if(obj){var tmp = countArea(i, j);max = tmp > max ? tmp : max;}}}return max;
};
复制代码

转载于:https://juejin.im/post/5a32b03f5188250648693d76

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

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

相关文章

Mybatis—代理开发和核心配置文件深入

代理开发方式介绍 采用 Mybatis 的代理开发方式实现 DAO 层的开发&#xff0c;这种方式是我们后面进入企业的主流。 Mapper 接口开发方法只需要程序员编写Mapper 接口&#xff08;相当于Dao 接口&#xff09;&#xff0c;由Mybatis 框架根据接口定义创建接口的动态代理对象&a…

mysql 位操作支持

mysql 支持位操作。 & 位与 &#xff5c; 位或 例如&#xff1a;update car_ins_fee_entity set change_status(change_status | 1) where id12356转载于:https://www.cnblogs.com/sign-ptk/p/7278225.html

SSRS:之为用户“NT AUTHORITY\NETWORK SERVICE”授予的权限不足,无法执行此操作。 (rsAccessDenied)...

错误信息&#xff1a;为用户“NT AUTHORITY\NETWORK SERVICE”授予的权限不足&#xff0c;无法执行此操作。 (rsAccessDenied)如图&#xff1a;解决方案之检查顺序&#xff1a;1.检查报表的执行服务帐户。使用“ Reporting Services 配置管理器”。2.检查数据库安全 - 登录名 中…

javascript函数式_如何以及为什么在现代JavaScript中使用函数式编程

javascript函数式by PALAKOLLU SRI MANIKANTA通过PALAKOLLU SRI MANIKANTA In this article, you will get a deep understanding of functional programming and its benefits.在本文中&#xff0c;您将对函数式编程及其好处有深入的了解。 函数式编程简介 (Introduction To…

飞机上的氧气面罩有什么用_第2部分—另一个面罩检测器……(

飞机上的氧气面罩有什么用This article is part of a series where I will be documenting my journey on the development of a social distancing feedback system for the blind as part of the OpenCV Spatial Competition. Check out the full series: Part 1, Part 2.本文…

Laravel 5 4 实现前后台登录

在官网下载 Laravel 5.4 配置并能在访问 php artisan make:auth 复制代码生成后路由文件 routes/web.php ,自动有 Auth::routes();Route::get(/home, HomeControllerindex); 复制代码运行 php artisan migrate 复制代码执行命令后会生成 users 表和 password_resets 表&#xf…

leetcode 561. 数组拆分 I(排序)

给定长度为 2n 的整数数组 nums &#xff0c;你的任务是将这些数分成 n 对, 例如 (a1, b1), (a2, b2), …, (an, bn) &#xff0c;使得从 1 到 n 的 min(ai, bi) 总和最大。 返回该 最大总和 。 示例 1&#xff1a; 输入&#xff1a;nums [1,4,3,2] 输出&#xff1a;4 解释…

经典网络流题目模板(P3376 + P2756 + P3381 : 最大流 + 二分图匹配 + 最小费用最大流)...

题目来源 P3376 【模板】网络最大流P2756 飞行员配对方案问题P3381 【模板】最小费用最大流最大流 最大流问题是网络流的经典类型之一&#xff0c;用处广泛&#xff0c;个人认为网络流问题最具特点的操作就是建反向边&#xff0c;这样相当于给了反悔的机会&#xff0c;不断地求…

Tensorflow笔记(基础): 图与会话,变量

图与会话 import tensorflow as tf import os# 取消打印 cpu,gpu选择等的各种警告 # 设置TF_CPP_MIN_LOG_LEVEL 的等级,1.1.0以后设置2后 只不显示警告,之前需要设置3,但设置3不利于调试 os.environ[TF_CPP_MIN_LOG_LEVEL] 2 import time# 创建一个常量 op, 产生一个 1x2 矩阵…

css左右布局代码_如何使用CSS位置来布局网站(带有示例代码)

css左右布局代码Using CSS position to layout elements on your website can be hard to figure out. What’s the difference between absolute, relative, fixed, and sticky? It can get confusing pretty quickly.使用CSS位置来布局网站上的元素可能很困难。 绝对&#x…

redis memcached MongoDB

我们现在使用的模式是&#xff0c;对于直接的key value对需缓存的直接用memcached。对于collection类型就使用Redis。对于大数据量的内容性的东西&#xff0c;我们打算尝试用mongoDB。也正在学习neo4j&#xff0c;来应对深度搜索&#xff0c;推荐功能。 1.Memcached单个key-val…

线性代数-矩阵-转置 C和C++的实现

原理解析&#xff1a; 本节介绍矩阵的转置。矩阵的转置即将矩阵的行和列元素调换&#xff0c;即原来第二行第一列&#xff08;用C21表示&#xff0c;后同&#xff09;与第一行第二列&#xff08;C12&#xff09;元素调换位置&#xff0c;原来c31与C13调换。即cij与cji调换 。 &…

数字经济的核心是对大数据_大数据崛起为数字世界的核心润滑剂

数字经济的核心是对大数据“Information is the oil of the 21st century, and analytics is the combustion engine”.“信息是21世纪的石油&#xff0c;分析是内燃机”。 — Peter Sondergaard, Senior Vice President of Gartner Research.— Gartner研究部高级副总裁Peter…

乞力马扎罗山 海明威_我如何对海明威编辑器(一种流行的写作应用程序)进行反向工程,并从泰国的海滩上构建了自己的数据库

乞力马扎罗山 海明威I’ve been using the Hemingway App to try to improve my posts. At the same time I’ve been trying to find ideas for small projects. I came up with the idea of integrating a Hemingway style editor into a markdown editor. So I needed to fi…

leetcode 566. 重塑矩阵

在MATLAB中&#xff0c;有一个非常有用的函数 reshape&#xff0c;它可以将一个矩阵重塑为另一个大小不同的新矩阵&#xff0c;但保留其原始数据。 给出一个由二维数组表示的矩阵&#xff0c;以及两个正整数r和c&#xff0c;分别表示想要的重构的矩阵的行数和列数。 重构后的…

制作简单的WIFI干扰器

原教程链接:http://www.freebuf.com/geek/133161.htmlgithub 1.准备材料 制作需要的材料有 nodemcu开发版IIC通信 128*64 OLED液晶屏电线按钮开关万能板排针(自选)双面胶(自选)参考2.准备焊接 引脚焊接参考 oled按钮效果3.刷入固件 下载烧录工具:ESP8266Flasher.exe 下载固件:…

Snipaste截图

绘图绘色&#xff0c;描述加图片能更加说明问题的本质。今天推荐一款多功能的截图snipaste... 欣赏绘色 常见报错 解决方案&#xff1a; 下载相关的DLL即可解决&#xff0c; 请根据你操作系统的版本&#xff08;32位/64位&#xff09;&#xff0c;下载并安装相应的微软 Visual …

azure第一个月_MLOps:两个Azure管道的故事

azure第一个月Luuk van der Velden and Rik Jongerius卢克范德费尔登(Luuk van der Velden)和里克 琼格里乌斯( Rik Jongerius) 目标 (Goal) MLOps seeks to deliver fresh and reliable AI products through continuous integration, continuous training and continuous del…

firebase auth_如何使用auth和实时数据库构建Firebase Angular应用

firebase authby Zdravko Kolev通过Zdravko Kolev 如何使用auth和实时数据库构建Firebase Angular应用 (How to build a Firebase Angular app with auth and a real-time database) For a long time, I was looking for a good Portfolio web app that can help me to easily…

Mybatis—多表查询

Mybatis多表查询 一对一查询 一对一查询的模型MapperScannerConfigurer 用户表和订单表的关系为&#xff0c;一个用户有多个订单&#xff0c;一个订单只从属于一个用户 创建Order和User实体 public class Order {private int id;private Date ordertime;private double to…