
【leetcode】463. 岛屿的周长(island-perimeter)(模拟)[简单]
发布日期:2021-05-13 21:40:09
浏览次数:20
分类:原创文章
本文共 1100 字,大约阅读时间需要 3 分钟。
链接
耗时
解题:19 min
题解:3 min
题意
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域。
网格中的格子水平和垂直方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地的格子相连组成的岛屿)。
岛屿中没有“湖”(“湖” 指水域在岛屿内部且不和岛屿周围的水相连)。格子是边长为 1 的正方形。网格为长方形,且宽度和高度均不超过 100 。计算这个岛屿的周长。
思路
详见代码。
时间复杂度: O ( n ∗ m ) O(n*m) O(n∗m)
AC代码
class Solution { private: int dir[4][2] = { { -1, 0}, { 1, 0}, { 0, -1}, { 0, 1}}; int ans = 0;public: int islandPerimeter(vector<vector<int>>& grid) { int n = grid.size(); if(n == 0) return 0; int m = grid[0].size(); for(int i = 0; i < n; ++i) { for(int j = 0; j < m; ++j) { if(grid[i][j] == 1) { int cnt = 0; for(int d = 0; d < 4; ++d) { int x = i + dir[d][0]; int y = j + dir[d][1]; if((x >= 0 && x < n) && (y >= 0 && y < m)) { if(grid[x][y] == 1) cnt++; } } ans += (4-cnt); } } } return ans; }};
发表评论
最新留言
表示我来过!
[***.240.166.169]2025年04月18日 08时47分32秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
CMake的主体框架
2021-05-14
实践:从简单CMake说起
2021-05-14
像素间的关系
2021-05-14
微积分(三)
2021-05-14
Oracle
2021-05-14
软件工程应用
2021-05-14
数据科学
2021-05-14
论文报告/前沿文章
2021-05-14
Less
2021-05-14
JS模块化规范
2021-05-14
函数与高级变量
2021-05-14
机器学习:sklearn实现黑色星期五
2021-05-14
键盘事件
2021-05-14
超分辨率/去噪
2021-05-14
弱监督
2021-05-14
二 召回算法
2021-05-14
2020-11月计划实施表
2021-05-14
个人常用网络
2021-05-14
图神经网络
2021-05-14
数据分析
2021-05-14