200 島嶼數量 BFS DFS實現

2021-10-05 06:14:20 字數 1061 閱讀 5237

難度:中等 2020/4/20每日一題打卡√

題目描述

解題思路

感覺類似的題出國好多遍,比如感染橘子,第乙個想到的還是bfs

經典bfs的模板啦,踩了乙個坑就是關於標記已經訪問過的時機。如果是出隊的時候才標記訪問過,會增加很多重複的遍歷次數,在資料量大的時候會超時。正確的應該是在入隊的時候就標記已經訪問過,這樣在其它元素向四周搜尋的時候就不會重複遍歷這些已經入隊的元素。

深度優先搜尋,找到乙個1就一直搜尋,不滿足條件就回退

200 島嶼數量(BFS DFS)

public class numislands 200,system.out.println numislands grid 網格 private static char grid 網格行數 private static int row 網格列數 private static int col 標記陣...

200 島嶼數量

複雜度分析 時間複雜度 o m n 其中 m 和 n 分別為行數和列數。空間複雜度 最壞情況下為 o m n 此時整個網格均為陸地,深度優先搜尋的深度達到m n。class solution int numislands vector grid int cnt 0 for int i 0 i gri...

200 島嶼數量

leetcode 200.島嶼數量 島嶼另一種型別 求周長 leetcoed 463.島嶼的周長 廣度優先遍歷 bfs 深度優先遍歷 dfs 2.1 dfs 就是遇到乙個 1 遞迴下去繼續找 1 四周沒有 1 之後,逐層返回到上一層找四周剩餘的 1 本題不需要回溯 直接把 訪問過的標記即可 廣度優先...