給乙個01矩陣,求不同的島嶼的個數。
0代表海,1代表島,如果兩個1相鄰,那麼這兩個1屬於同乙個島。我們只考慮上下左右為相鄰。
樣例:
在矩陣:
[
[1, 1, 0, 0, 0],
[0, 1, 0, 0, 1],
[0, 0, 0, 1, 1],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 1]
]
中有 3 個島.
思路:
利用遞迴,將與當前島嶼相接壤的島存入map中,遍歷陣列,得到結果。
#ifndef c433_h
#define c433_h
#include
#include
#include
using
namespace
std;
class solution , , , };//方便計算位置
for (int i = 0; i < row; ++i)}}
return num;
}void visit(vector
> &grid, int i, int j,map
&visited,vector
> dic)
}};#endif
Lintcode 不同島嶼的個數
給定乙個由0和1組成的非空的二維網格,乙個島嶼是指四個方向 包括橫向和縱向 都相連的一組1 1表示陸地 你可以假設網格的四個邊緣都被水包圍。找出所有不同的島嶼的個數。如果乙個島嶼與另乙個島嶼形狀相同 不考慮旋轉和翻摺 我們認為這兩個島嶼是相同的。11 1和 1 11是不同的島嶼,因為我們不考慮旋轉和...
島嶼的個數
給乙個01矩陣,求不同的島嶼的個數。0代表海,1代表島,如果兩個1相鄰,那麼這兩個1屬於同乙個島。我們只考慮上下左右為相鄰。樣例 在矩陣 1,1,0,0,0 0,1,0,0,1 0,0,0,1,1 0,0,0,0,0 0,0,0,0,1 中有3個島.借鑑網上 整理得 public class sol...
433 島嶼的個數
4.11 陣列統一賦值的函式arrays.fill 感覺自己的想法很野啊,用總的點的個數去減。就是要注意邊界值,陣列是從下標0開始的,一定要注意。public class solution 行數 int m grid 0 length if m 0 列數 int count m n boolean ...