LeetCode简单题之岛屿的周长

news/2024/12/29 11:02:46/

题目

给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域。
网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。
岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。
示例 1:
在这里插入图片描述
输入:grid = [[0,1,0,0],[1,1,1,0],[0,1,0,0],[1,1,0,0]]
输出:16
解释:它的周长是上面图片中的 16 个黄色的边
示例 2:
输入:grid = [[1]]
输出:4
示例 3:
输入:grid = [[1,0]]
输出:4
提示:
row == grid.length
col == grid[i].length
1 <= row, col <= 100
grid[i][j] 为 0 或 1
来源:力扣(LeetCode)

解题思路

  分析一个岛屿周围的情况:如果一个陆地没有陆地那么它的周长是4,如果有一个那么它的周长是3,以此类推周围达到最大陆地数——四个陆地其周长为0。大体思路:遍历整个网格,遇到陆地周长就加4,检查当前陆地周围的陆地情况,依情况再删减周长。

class Solution:def islandPerimeter(self, grid: List[List[int]]) -> int:def check(x,y):  #检查陆地周围情况count=0if grid[x-1][y] and x-1>-1:count+=1if x+1<len(grid) and grid[x+1][y]:   count+=1if grid[x][y-1] and y-1>-1:count+=1if y+1<len(grid[0]) and grid[x][y+1]:count+=1return counts=0  #统计总的岛屿周长for i in range(len(grid)):for j in range(len(grid[0])):if grid[i][j]:s=s+4-check(i,j)return s

在这里插入图片描述


http://www.ppmy.cn/news/606202.html

相关文章

[算法刷题笔记]二叉树练习(1)二叉树的镜像

✨ 二叉树的镜像&#x1f96a;前言&#x1f96a;二叉树的镜像&#x1f32e;&#x1f32e;题目描述&#x1f32e;&#x1f32e;思路1&#x1f32e;&#x1f32e;思路2&#x1f96a;总结&#x1f4c3;个人主页:不断前进的皮卡丘&#x1f31e;博客描述:梦想也许遥不可及&#xff0…

深度学习的Xavier初始化方法

在tensorflow中&#xff0c;有一个初始化函数&#xff1a;tf.contrib.layers.variance_scaling_initializer。Tensorflow 官网的介绍为&#xff1a; variance_scaling_initializer( factor2.0, modeFAN_IN, uniformFalse, seedNone, dtypetf.float32)1234567Returns an initial…

LeetCode简单题之分发饼干

题目 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这是能让孩子们满足胃口的饼干的最小尺寸&#xff1b;并且每块饼干 j&#xff0c;都有一个尺寸…

Linux学习(7)——开机、重启和用户管理

✨ Linux——开机、重启和用户登录注销&#x1f351;Linux关机和重启&#x1f351;用户登录和注销&#x1f34a;&#x1f34a;基本介绍&#x1f34a;&#x1f34a;使用细节&#x1f351;用户管理&#x1f34a;&#x1f34a;基本介绍&#x1f34a;&#x1f34a;添加用户&#x1…

【Data Studio 2.1.0连接openGauss2.1.0】

Data Studio 2.1.0连接openGauss2.1.0 一、实验环境说明二、配置客户端接入方式三、Data Studio2.1.0连接openGauss数据库 一、实验环境说明 openGauss2.1.0版本Data Studio 2.1.0 版本 二、配置客户端接入方式 【以下操作是omm用户进行】 修改配置文件pg_hba.conf&#xf…

LeetCode简单题之图像渲染

题目 有一幅以二维整数数组表示的图画&#xff0c;每一个整数表示该图画的像素值大小&#xff0c;数值在 0 到 65535 之间。 给你一个坐标 (sr, sc) 表示图像渲染开始的像素值&#xff08;行 &#xff0c;列&#xff09;和一个新的颜色值 newColor&#xff0c;让你重新上色这幅…

深度学习——Xavier初始化方法

20210609 https://blog.csdn.net/u011534057/article/details/51673458 https://blog.csdn.net/luoxuexiong/article/details/95772045 “Xavier”初始化方法是一种很有效的神经网络初始化方法&#xff0c;方法来源于2010年的一篇论文《Understanding the difficulty of traini…

Linux学习(8)——常用指令

✨Linux常用指令⛱️ 运行级别&#x1f308;&#x1f308;基本介绍&#x1f308;&#x1f308;如何指定运行级别⛱️(面试题)如何找回root密码⛱️帮助指令⛱️文件目录类⛱️博客推荐&#x1f4c3;个人主页:不断前进的皮卡丘&#x1f31e;博客描述: 梦想也许遥不可及&#xff…