【精】LintCode领扣算法问题答案:1225. 岛的周长
发布日期:2021-06-30 17:10:25 浏览次数:2 分类:技术文章

本文共 1491 字,大约阅读时间需要 4 分钟。

1225. 岛的周长

描述

给定一张用二维数组表示的网格地图,其中1表示陆地单元格,0表示水域单元格。网格地图中的单元格视为水平/垂直相连(斜向不相连)。这个网格地图四周完全被水域包围着,并且其中有且仅有一个岛(定义为一块或多块相连的陆地单元格)。这个岛不包含湖(定义为不和外围水域相连的水域单元格)。一个地图单元格是边长为1的一个正方形;网格地图是一个矩形,并且它的长和宽不超过100。你要做的是求出这个岛的周长。

样例 1:

[[0,1,0,0], [1,1,1,0], [0,1,0,0], [1,1,0,0]]答案:16说明:岛的边界为下图中被标为黄色的边,其周长即为16:


文章目录


题解

public class Solution {
/** * @param grid: a 2D array * @return: the perimeter of the island */ public int islandPerimeter(int[][] grid) {
// Write your code here if (grid == null) {
return 0; } int ret = 0; for (int r = 0; r < grid.length; r++) {
for (int c = 0; c < grid[0].length; c++) {
if (grid[r][c] == 1) {
if (r == 0 || grid[r - 1][c] == 0) {
ret++; } if (c == 0 || grid[r][c - 1] == 0) {
ret++; } if (r + 1 == grid.length || grid[r + 1][c] == 0) {
ret++; } if (c + 1 == grid[0].length || grid[r][c + 1] == 0) {
ret++; } } } } return ret; }}

最后说两句

非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~

作者水平有限,如果文章内容有不准确的地方,请指正。

希望小伙伴们都能每天进步一点点。

声明

本文由博客原创,转载请注明来源,谢谢~

转载地址:https://le-yi.blog.csdn.net/article/details/108899482 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:领扣LintCode算法问题答案-1227. 重复的子串模式
下一篇:领扣LintCode算法问题答案-1219. 加热器

发表评论

最新留言

不错!
[***.144.177.141]2024年04月17日 23时10分57秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章