島嶼的周長1
給定乙個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。
網格中的格仔水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有乙個島嶼(或者說,乙個或多個表示陸地的格仔相連組成的島嶼)。
島嶼中沒有「湖」(「湖」 指水域在島嶼內部且不和島嶼周圍的水相連)。格仔是邊長為 1 的正方形。網格為長方形,且寬度和高度均不超過 100 。計算這個島嶼的周長。
示例 :
輸入:[[0,1,0,0],
[1,1,1,0],
[0,1,0,0],
[1,1,0,0]]
輸出: 16
改進:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
"""@author: wowlnan
@github:
@blog:
"""class
solution
:def
islandperimeter
(self, grid)
->
int:
columns=
len(grid[0]
) rows=
len(grid)
length=
0 i=
0 fills=
0 touches=
0while i
j=0while j
if grid[i]
[j]==1:
fills+=
1if j>
0and grid[i]
[j-1]==
1:touches+=
1if i>
0and grid[i-1]
[j]==1:
touches+=
1 j+=
1 i+=
1 length=fills*
4-touch*
2return length
或者:
# -*- coding: utf-8 -*-
#!/usr/bin/env python
"""@author: wowlnan
@github:
@blog:
"""class
solution
:def
islandperimeter
(self, grid)
->
int:
columns=
len(grid[0]
) rows=
len(grid)
length=
0 fills=
0 touches=
0for i in
range
(rows)
:for j in
range
(columns)
:if grid[i]
[j]:
fills+=1if
(j>0)
&grid[i]
[j]&grid[i]
[j-1]:
touches+=1if
(i>0)
&grid[i]
[j]&grid[i-1]
[j]:
touches+=
1 length=fills*
4-touches*
2return length
島嶼的周長
問題描述 給定乙個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。網格中的格仔水平和垂直方向相連 對角線方向不相連 整個網格被水完全包圍,但其中恰好有乙個島嶼 或者說,乙個或多個表示陸地的格仔相連組成的島嶼 島嶼中沒有 湖 湖 指水域在島嶼內部且不和島嶼周圍的水相連 格仔是邊長為...
島嶼的周長
給定乙個 row x col 的二維網格地圖 grid 其中 grid i j 1 表示陸地,grid i j 0 表示水域。網格中的格仔 水平和垂直 方向相連 對角線方向不相連 整個網格被水完全包圍,但其中恰好有乙個島嶼 或者說,乙個或多個表示陸地的格仔相連組成的島嶼 島嶼中沒有 湖 湖 指水域在...
島嶼周長(C )
描述 用乙個n m的二維陣列表示地圖,1表示陸地,0代表海水,每一格都表示乙個1 1的區域。地圖中的格仔只能橫向或者縱向連線 不能對角連線 連線在一起的陸地稱作島嶼,同時整個地圖都被海水圍繞。假設給出的地圖中只會有乙個島嶼,並且島嶼中不會有湖 即不會有水被陸地包圍的情況出現 請判斷所給定的二維地圖中...