島嶼的個數 LintCode

2021-08-09 10:14:46 字數 693 閱讀 9387

給乙個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 ...