给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。

网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。

岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。

示例 :

输入:
[[0,1,0,0],
[1,1,1,0],
[0,1,0,0],
[1,1,0,0]]

输出: 16

解释: 它的周长是下面图片中的 16 个黄色的边:

代码

class Solution {public int islandPerimeter(int[][] grid) {int res=0;int[][] dir=new int[][]{{0,1},{1,0},{-1,0},{0,-1}};for(int i=0;i<grid.length;i++)for(int j=0;j<grid[0].length;j++){if(grid[i][j]==1)//遍历所有岛屿res+=getLandPerimeter(grid,j,i,dir);//检查岛屿的四周}    return res;}public int getLandPerimeter(int[][] grid,int x,int y,int[][] dir) {//检查四周int cnt=0;for(int[] c:dir){int nextX=x+c[0],nextY=y+c[1];if(nextX<0||nextX>=grid[0].length||nextY<0||nextY>=grid.length||grid[nextY][nextX]!=1)//位于边界或者周围的是0cnt++;}return cnt;}
}

leetcode 463. 岛屿的周长相关推荐

  1. Leetcode.463 岛屿的周长

    题目链接 Leetcode.463 岛屿的周长 easy 题目描述 给定一个 row x col的二维网格地图 grid,其中:grid[i][j] = 1表示陆地, grid[i][j] = 0表示 ...

  2. leetcode 463. 岛屿的周长(Java版)

    题目 https://leetcode-cn.com/problems/island-perimeter/ 题解 思路 需要三次遍历 首先,总边数=陆地个数*4 然后,横向遍历棋盘,纵向遍历棋盘,如果 ...

  3. 【LeetCode】463. 岛屿的周长

    题目链接:https://leetcode-cn.com/problems/island-perimeter/​​​​​​​ 题目描述 给定一个 row x col 的二维网格地图 grid ,其中: ...

  4. 463. 岛屿的周长

    给定一个 row x col 的二维网格地图 grid ,其中:grid[i][j] = 1 表示陆地, grid[i][j] = 0 表示水域. 网格中的格子 水平和垂直 方向相连(对角线方向不相连 ...

  5. 【LeetCode】岛屿(周长、数量、最大面积、封闭岛屿数)

    文章目录 岛屿的周长★ 岛屿数量★★ 岛屿数量Ⅱ★★★ 岛屿的最大面积★★ 统计封闭岛屿的数目★★ 岛屿的周长★ LeetCode463. 岛屿的周长 [题目]给定一个 row x col 的二维网格 ...

  6. 岛屿数量JAVA_LeetCode刷题 463. Island Perimeter 岛屿的周长 Java

    LeetCode刷题 463. Island Perimeter 岛屿的周长 Java LeetCode刷题 463. Island Perimeter 岛屿的周长 Java 题目介绍 链接:http ...

  7. 岛屿问题 通用解-463.岛屿周长-200.岛屿数量-695.岛屿的最大面积-827.最大人工岛

    文章目录 岛屿问题 如何在网格上做DFS(通用解) 463.岛屿的周长 题目 题解 -通用模板 题解2 200.岛屿数量 题目 题解 695.岛屿的最大面积 题目 题解 827.最大人工岛 题目 题解 ...

  8. 【leetcode】岛屿类问题的通用解法

    在 LeetCode 中,「岛屿问题」是一个系列系列问题,比如 200. 岛屿数量 (Easy) 463. 岛屿的周长 (Easy) 695. 岛屿的最大面积 (Medium) 827. 最大人工岛 ...

  9. Leetcode刷题 463题:岛屿的周长(基于Java语言)

    ** Leetcode刷题 463题:岛屿的周长(基于Java语言) ** 一. 题目描述: 给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相 ...

最新文章

  1. Zabbix监控系统部署:配置详解
  2. C#基础|面向对象之多态
  3. 单调栈解木板倒水问题
  4. 小说搜索站快速搭建:2.内容页解析
  5. 笨办法学 Python · 续 练习 15:栈和队列
  6. Android学习笔记--Menu菜单的使用
  7. JSON Perl
  8. oracle11g 卸载步骤
  9. 内存占用_一文教你节省 90% 的内存占用
  10. HG255D刷flash记录
  11. 如何关闭计算机软件更新功能,如何关闭电脑自动更新功能
  12. Linux编程经典实例,PyQt4 精彩实例分析 - 实例1 Hello Kitty! _Linux编程_Linux公社-Linux系统门户网站...
  13. 协方差与相关系数介绍
  14. 阿里巴巴投资1亿美元在成都建立西部基地,成都的人才快点抓紧啊
  15. AliOS Things 编译体系
  16. 二次函数图像如何用计算机绘制,如何快速画二次函数图像
  17. idea重装后打不开,点起来没反应(难受)
  18. 用于光波导耦合的倾斜光栅分析
  19. 小萌库一周电影大合集
  20. Parameters: { “silent“ } might not be used. This may not be accurate due to some parameters are

热门文章

  1. 【Java】字符串转换为数字:Integer的parseInt方法
  2. 104 权限 sudo 解压缩
  3. saltstack二
  4. Educational Codeforces Round 25 C. Multi-judge Solving
  5. Object.prototype 原型和原型链
  6. MySQL Workbench导出数据库
  7. Java中的Enum的使用与分析
  8. soapui自带的webservice实例 MockService
  9. Mule,目前综合状态最良好的开源ESB方案引文
  10. windows docker 空出C盘 迁移到其他盘