DFS專題 之 463 島嶼的周長

2021-10-10 03:01:29 字數 997 閱讀 9027

題目:

給定乙個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。

網格中的格仔水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有乙個島嶼(或者說,乙個或多個表示陸地的格仔相連組成的島嶼)。

島嶼中沒有「湖」(「湖」 指水域在島嶼內部且不和島嶼周圍的水相連)。格仔是邊長為 1

的正方形。網格為長方形,且寬度和高度均不超過 100 。計算這個島嶼的周長。

示例 :

輸入:[[0,1,0,0],

輸出: 16

解題思路:

方法1: dfs

方法2: 迭代

方法3:找出 島嶼格仔 之間的 相鄰邊,每乙個相鄰邊意味著周長-2

技術總結:

一般這種二維陣列的島嶼問題,大概率都是dfs。

//方法1:簡單dfs

void

island

(int

**grid,

int gridsize,

int*gridcolsize,

int i,

int j,

int*count)

return;}

intislandperimeter

(int

**grid,

int gridsize,

int*gridcolsize)

int count =0;

for(

int i =

0; i < gridsize; i++)}

}return count;

}

463 島嶼的周長

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

463 島嶼的周長

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

463 島嶼的周長

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