牛客題霸 島嶼數量 C 題解 答案

2021-10-10 09:24:16 字數 826 閱讀 4317

牛客題霸 [ 島嶼數量] c++題解/答案

給乙個01矩陣,1代表是陸地,0代表海洋, 如果兩個1相鄰,那麼這兩個1屬於同乙個島。我們只考慮上下左右為相鄰。

島嶼: 相鄰陸地可以組成乙個島嶼(相鄰:上下左右) 判斷島嶼個數。

人傻了,調了半小時沒調出來。。

難倒是不難

其實就是dfs然後標記附近的島嶼,如果附近所有島嶼都被標記了,就count++

然後看還有其他的島嶼,挺常規的

class solution 

;public:

/** * 判斷島嶼數量

* @param grid char字元型vector>

* @return int整型

*/void

dfs(

int x,

int y, vectorchar

>

>

& grid, vector>

&vis,

int row,

int col)}}

intsolve

(vectorchar

>

>

& grid)

int row = grid.

size()

;int col = grid[0]

.size()

;int count =0;

vector>

vis(row,vector

(col,true));

for(

int i=

0;i}return count;}}

;

牛客題霸 島嶼數量

給定乙個方格圖,求聯通塊的個數。求聯通塊,並查集可做。我們可以把所有相鄰的兩個是1的位置,用並查集合並起來,最後計算有多少個並查集即可。具體實現 掃瞄整個地圖,如果是1,看其上下左右是不是1,如果是,合併。詳見 附有注釋。class solution int dy 4 int getid int x...

牛客題霸 求路徑 C 題解 答案

牛客題霸 求路徑 c 題解 答案 乙個機械人在m n大小的地圖的左上角 起點,下圖中的標記 start 的位置 機械人每次向下或向右移動。機械人要到達地圖的右下角。終點,下圖中的標記 finish 的位置 可以有多少種不同的路徑從起點走到終點?原本想遞迴做,發現複雜度過高 動態規劃做法 我們先設定邊...

牛客題霸 括號序列 C 題解 答案

牛客題霸 括號序列 c 題解 答案 給出乙個僅包含字元 和 的字串,判斷給出的字串是否是合法的括號序列 括號必須以正確的順序關閉,和 都是合法的括號序列,但 和 不合法。用棧來做 用棧來存每個符號的左邊,當出現符號右邊時,看棧的頂部是否為該符號的左邊,如果不能匹配則返回0,能匹配則將棧頂pop 全部...