1225 島的周長

2022-02-15 02:16:40 字數 1491 閱讀 4185

中文english

給定一張用二維陣列表示的網格地圖,其中1表示陸地單元格,0表示水域單元格。網格地圖中的單元格視為水平/垂直相連(斜向不相連)。這個網格地圖四周完全被水域包圍著,並且其中有且僅有乙個島(定義為一塊或多塊相連的陸地單元格)。這個島不包含湖(定義為不和外圍水域相連的水域單元格)。乙個地圖單元格是邊長為1的乙個正方形;網格地圖是乙個矩形,並且它的長和寬不超過100。你要做的是求出這個島的周長。

[[0,1,0,0],

[1,1,1,0],

[0,1,0,0],

[1,1,0,0]]

答案:16

說明:島的邊界為下圖中被標為黃色的邊,其周長即為16:

輸入測試資料 (每行乙個引數)如何理解測試資料?

class

solution:

"""@param grid: a 2d array

@return: the perimeter of the island

"""'''

大致思路:

1.如果當前的為邊界值,0或者len(grid[0

])或者len(grid)的話,判斷上下左右那個為邊界值,多少邊界值即為多少周長

2.如果當前的點周圍每是乙個海的話,則佔乙個長度。

'''def islandperimeter(self,grid):

res = 0

for i in

range(len(grid)):

for j in range(len(grid[0

])):

if grid[i][j] == 1

:

if i == 0

: res += 1

if j == 0

: res += 1

if i == len(grid)-1

: res += 1

if j == len(grid[0])-1

: res += 1

if i-1 >= 0 and grid[i-1][j] == 0

: res += 1

if i+1

< len(grid) and grid[i+1][j] == 0

: res += 1

if j-1 >= 0 and grid[i][j-1] == 0

: res += 1

if j+1

< len(grid[0]) and grid[i][j+1] == 0

: res += 1

return res

島嶼的周長

島嶼的周長1 給定乙個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。網格中的格仔水平和垂直方向相連 對角線方向不相連 整個網格被水完全包圍,但其中恰好有乙個島嶼 或者說,乙個或多個表示陸地的格仔相連組成的島嶼 島嶼中沒有 湖 湖 指水域在島嶼內部且不和島嶼周圍的水相連 格仔是邊...

島嶼的周長

問題描述 給定乙個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。網格中的格仔水平和垂直方向相連 對角線方向不相連 整個網格被水完全包圍,但其中恰好有乙個島嶼 或者說,乙個或多個表示陸地的格仔相連組成的島嶼 島嶼中沒有 湖 湖 指水域在島嶼內部且不和島嶼周圍的水相連 格仔是邊長為...

島嶼的周長

給定乙個 row x col 的二維網格地圖 grid 其中 grid i j 1 表示陸地,grid i j 0 表示水域。網格中的格仔 水平和垂直 方向相連 對角線方向不相連 整個網格被水完全包圍,但其中恰好有乙個島嶼 或者說,乙個或多個表示陸地的格仔相連組成的島嶼 島嶼中沒有 湖 湖 指水域在...