給定乙個包含0
和1
的二維網格地圖,其中1
表示陸地0
表示水域。
網格中的格仔水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有乙個島嶼(或者說,乙個或多個表示陸地的格仔相連組成的島嶼)。
島嶼中沒有「湖」(「湖」 指水域在島嶼內部且不和島嶼周圍的水相連)。格仔是邊長為1
的正方形。網格為長方形,且寬度和高度均不超過100
。計算這個島嶼的周長。
示例 :
輸入:
[[0,1,0,0],
[1,1,1,0],
[0,1,0,0],
[1,1,0,0]]
輸出: 16
通過次數29,656
| 提交次數29,656
**實現
class
solution
:def
islandperimeter
(self, grid: list[list[
int]])
->
int:
re =
0 row, col =
len(grid)
,len
(grid[0]
)for i in
range
(row)
:for j in
range
(col)
:if grid[i]
[j]==1:
temp =
4for di,dj in[[
-1,0
],[1
,0],
[0,1
],[0
,-1]
]:if0
<=i+di0<=j+dj[j+dj]==1
: temp-=
1 re+=temp
return re
每日一題 島嶼數量
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例1 輸入 11110 11010 11000 00000 輸出 1 示例2 輸入 11000 1...
每日一題 島嶼數量
今天是2020年4月20日,星期一。給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 ...
每日一題打卡 200 島嶼的數量
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 11110 11010 11000 00000 輸出 1 我的解答 深度優先遍歷 c...