中文english
給定一張用二維陣列表示的網格地圖,其中1表示陸地單元格,0表示水域單元格。網格地圖中的單元格視為水平/垂直相連(斜向不相連)。這個網格地圖四周完全被水域包圍著,並且其中有且僅有乙個島(定義為一塊或多塊相連的陸地單元格)。這個島不包含湖(定義為不和外圍水域相連的水域單元格)。乙個地圖單元格是邊長為1的乙個正方形;網格地圖是乙個矩形,並且它的長和寬不超過100。你要做的是求出這個島的周長。
[[0,1,0,0],
[1,1,1,0],
[0,1,0,0],
[1,1,0,0]]
答案:16
說明:島的邊界為下圖中被標為黃色的邊,其周長即為16:
輸入測試資料 (每行乙個引數)如何理解測試資料?
classsolution:
"""@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 表示水域。網格中的格仔 水平和垂直 方向相連 對角線方向不相連 整個網格被水完全包圍,但其中恰好有乙個島嶼 或者說,乙個或多個表示陸地的格仔相連組成的島嶼 島嶼中沒有 湖 湖 指水域在...