島嶼問題合集

2021-10-09 18:37:02 字數 2528 閱讀 7238

題目描述:

給你乙個由 『1』(陸地)和 『0』(水)組成的的二維網格,請你計算網格中島嶼的數量。

島嶼總是被水包圍,並且每座島嶼只能由水平方向或豎直方向上相鄰的陸地連線形成。

此外,你可以假設該網格的四條邊均被水包圍。

示例 1:

輸入:[

[『1』,『1』,『1』,『1』,『0』],

[『1』,『1』,『0』,『1』,『0』],

[『1』,『1』,『0』,『0』,『0』],

[『0』,『0』,『0』,『0』,『0』]

]輸出: 1

示例 2:

輸入:[

[『1』,『1』,『0』,『0』,『0』],

[『1』,『1』,『0』,『0』,『0』],

[『0』,『0』,『1』,『0』,『0』],

[『0』,『0』,『0』,『1』,『1』]

]輸出: 3

解釋: 每座島嶼只能由水平和/或豎直方向上相鄰的陸地連線而成。

分析:即統計能連線起來的1的區域塊個數,使用dfs遍歷,同時標記即可

class

solution

public

intnumislands

(char

grid)}}

return cnt;

}}

題目描述:

給定乙個包含了一些 0 和 1 的非空二維陣列 grid 。

乙個 島嶼 是由一些相鄰的 1 (代表土地) 構成的組合,這裡的「相鄰」要求兩個 1 必須在水平或者豎直方向上相鄰。你可以假設 grid 的四個邊緣都被 0(代表水)包圍著。

找到給定的二維陣列中最大的島嶼面積。(如果沒有島嶼,則返回面積為 0 。)

示例 1:

[[0,0,1,0,0,0,0,1,0,0,0,0,0],

[0,0,0,0,0,0,0,1,1,1,0,0,0],

[0,1,1,0,1,0,0,0,0,0,0,0,0],

[0,1,0,0,1,1,0,0,1,0,1,0,0],

[0,1,0,0,1,1,0,0,1,1,1,0,0],

[0,0,0,0,0,0,0,0,0,0,1,0,0],

[0,0,0,0,0,0,0,1,1,1,0,0,0],

[0,0,0,0,0,0,0,1,1,0,0,0,0]]

對於上面這個給定矩陣應返回 6。注意答案不應該是 11 ,因為島嶼只能包含水平或垂直的四個方向的 1 。

示例 2:

[[0,0,0,0,0,0,0,0]]

對於上面這個給定的矩陣, 返回 0。

注意: 給定的矩陣grid 的長度和寬度都不超過 50。

分析:基於上題,加個變數統計每個區域1的個數

class

solution

public

intmaxareaofisland

(int

grid)}}

return ans;

}}

題目描述:

有乙個二維矩陣 grid ,每個位置要麼是陸地(記號為 0 )要麼是水域(記號為 1 )。

我們從一塊陸地出發,每次可以往上下左右 4 個方向相鄰區域走,能走到的所有陸地區域,我們將其稱為一座「島嶼」。

如果一座島嶼 完全 由水域包圍,即陸地邊緣上下左右所有相鄰區域都是水域,那麼我們將其稱為 「封閉島嶼」。

請返回封閉島嶼的數目。

示例 1:

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

輸出:2

解釋:灰色區域的島嶼是封閉島嶼,因為這座島嶼完全被水域包圍(即被 1 區域包圍)。

示例 2:

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

輸出:1

示例 3:

輸入:grid = [[1,1,1,1,1,1,1],

[1,0,0,0,0,0,1],

[1,0,1,1,1,0,1],

[1,0,1,0,1,0,1],

[1,0,1,1,1,0,1],

[1,0,0,0,0,0,1],

[1,1,1,1,1,1,1]]

輸出:2

分析:只要在邊界裡面的又是1的就會形成封閉島嶼,而當達到邊界之外時,證明邊界處時不是1 ,那麼肯定不會構成封閉島嶼。

class

solution

public

intclosedisland

(int

grid)

}return ans;

}}

島嶼問題(DFS)

題目 方格搜尋類題目均可使用dfs演算法 695.給定乙個包含了一些 0 和 1的非空二維陣列 grid 乙個 島嶼 是由四個方向 水平或垂直 的 1 代表土地 構成的組合。你可以假設二維矩陣的四個邊緣都被水包圍著。找到給定的二維陣列中最大的島嶼面積。如果沒有島嶼,則返回面積為0。示例 1 0,0,...

島嶼面積問題

網格沉島問題 給定乙個包含了一些 0 和 1 的非空二維陣列 grid 乙個 島嶼 是由一些相鄰的 1 代表土地 構成的組合,這裡的 相鄰 要求兩個 1 必須在水平或者豎直方向上相鄰。你可以假設 grid 的四個邊緣都被 0 代表水 包圍著。找到給定的二維陣列中最大的島嶼面積。如果沒有島嶼,則返回面...

2017 2 18 問題合集

入坑144天 因為flex的相容性問題,導致 臃腫,重新優化了樣式表,簡單的居中問題不再使用flex屬性。同時也學會了如何處理flex相容性的問題 a display moz box display webkit box display webkit flex 新版本語法 chrome 21 dis...