給你乙個由 『1』(陸地)和 『0』(水)組成的的二維網格,島嶼總是被水包圍,並且每座島嶼只能由水平方向和/或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。求島嶼的數量。
輸入:11110
11010
11000
00000
輸出: 1
輸入:11000
11000
00100
00011
輸出: 3
解釋: 每座島嶼只能由水平和/或豎直方向上相鄰的陸地連線而成。
1.遍歷整個二維陣列
2.如果為1說明是陸地,那麼對該點上右下左四個方向進行dfs。把搜尋過的點的值改為2,表示該點已被搜尋過。
3.在dfs的時候,要判斷下標是否合法,避免越界
//求島嶼的數量
class
solution
,dy=
;int n = grid.
size()
,m = grid[0]
.size()
; grid[x]
[y]=
'2';
for(
int i=
0;i<
4;i++)}
intnumislands
(vectorchar
>>
& grid)}}
return cunt;}}
;
時間複雜度:只遍歷二維nm數m組一遍,所以時間複雜度為o(nm),n,m分n別為列數和行數。
空間複雜度: o(nm),因為如果二維全為1的話,dfs深度會達到nm。
給定乙個包含 0 和 1 的二維網格地圖,其中 1 表示陸地 0 表示水域。
網格中的格仔水平和垂直方向相連(對角線方向不相連)。整個網格被水完全包圍,但其中恰好有乙個島嶼(或者說,乙個或多個表示陸地的格仔相連組成的島嶼)。
島嶼中沒有「湖」(「湖」 指水域在島嶼內部且不和島嶼周圍的水相連)。格仔是邊長為 1 的正方形。網格為長方形,且寬度和高度均不超過 100 。計算這個島嶼的周長。
輸入:0,1,0,0
1,1,1,0
0,1,0,0
1,1,0,0
輸出: 16
解釋: 每個為1的數周圍有4條邊,,求與0相鄰的邊的個數.
1.直接遍歷整個二維陣列,如果為1,則他初始有4條邊
2.看他上右下左四個方向的格仔有多少個1。有多少個就減去多少條邊。
3.最後將所有為1的格仔不重複的邊加起來就是結果。
//求島嶼的周長
class
solution
,dy=
;int n = grid.
size()
;int m = grid[0]
.size()
;int res =0;
for(
int i=
0;i) res +
= count;}}
}return res;}}
;
給定乙個包含了一些 0 和 1 的非空二維陣列 grid 。
乙個 島嶼 是由一些相鄰的 1 (代表土地) 構成的組合,這裡的「相鄰」要求兩個 1 必須在水平或者豎直方向上相鄰。你可以假設 grid 的四個邊緣都被 0(代表水)包圍著。
找到給定的二維陣列中最大的島嶼面積。(如果沒有島嶼,則返回面積為 0 。)
輸入: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
思路:dfs找出所有的島嶼,選出最大的那個。就是在找島嶼的數量那道題的基礎上,增加求dfs棧最大深度。
//求島嶼的最大面積
int dx=
,dy=
;class
solution
return count;
}int
maxareaofisland
(vectorint>>
& grid)}}
return res;}}
;
leetcode題解200 島嶼數量
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 grid 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0...
小C的島嶼 題解
ioi2018 集訓隊作業 by 任軒笛 小c有 n 個島嶼。她為了管理島上的人,決定讓這些島嶼連通。每個島嶼i有乙個概率值 p i 和乙個友好列表 a i 小c首先來到了1號島嶼,她會依次執行下面操作 設現在在島嶼 x 有 p x 的概率產生一條無向邊連線兩個隨機島嶼,這兩個島嶼不會相同,也不會已...
島嶼問題(DFS)
題目 方格搜尋類題目均可使用dfs演算法 695.給定乙個包含了一些 0 和 1的非空二維陣列 grid 乙個 島嶼 是由四個方向 水平或垂直 的 1 代表土地 構成的組合。你可以假設二維矩陣的四個邊緣都被水包圍著。找到給定的二維陣列中最大的島嶼面積。如果沒有島嶼,則返回面積為0。示例 1 0,0,...