演算法 廣度優先演算法通用模板

2021-10-14 15:33:34 字數 1523 閱讀 7691

廣度優先演算法和深度優先演算法類似是較為優雅的暴力演算法,時間複雜度為o(n^2)

定義queue

加入初始條件

佇列不為空的while迴圈

3.0 業務處理

3.1 for迴圈將佇列元素逐一取出進行處理

3.2 將下一條件放入佇列中

3.3 將符合條件的一種結果放入結果集中

返回結果集

接下來用leetcode中的一些題目來驗證如上解題模板

leetcode-102.二叉樹的層序遍歷

根據要求編寫**

class

solution

// 1. 定義佇列

queue

queue =

newlinkedlist

<

>()

;// 2.加入初始條件

queue.

offer

(root)

;// 3. 佇列不為空的while迴圈

while

(!queue.

isempty()

)if(temp.right!=null)

}// 3.3 將符合條件的一種結果放入結果集中

res.

add(oneres);}

// 4. 返回結果集

return res;

}}

leetcode-429.n叉樹的層序遍歷

class

solution

// 1. 定義佇列

queue

queue =

newlinkedlist

<

>()

;// 2.加入初始條件

queue.

offer

(root)

;// 3. 佇列不為空的while迴圈

while

(!queue.

isempty()

)}}// 3.3 將符合條件的一種結果放入結果集中

res.

add(oneres);}

// 4. 返回結果集

return res;

}}

leetcode-690. 員工的重要性

class

solution

// 1. 定義佇列

queue

queue =

newlinkedlist

<

>()

;// 2.加入初始條件

queue.

offer

(map.

get(id));

// 3. 佇列不為空的while迴圈

while

(!queue.

isempty()

)}// 4. 返回結果集

return res;

}}

演算法 廣度優先演算法和深度優先演算法

廣度 bfs 和深度 dfs 優先演算法這倆個演算法是圖論裡面非常重要的兩個遍歷的方法。下面乙個例子迷宮計算,如下圖 解釋 所謂廣度,就是一層一層的,向下遍歷,層層堵截,看下面這幅圖,我們如果要是廣度優先遍歷的話,我們的結果是v1 v2 v3 v4 v5 v6 v7 v8。廣度優先搜尋的思想 訪問頂...

深度優先演算法和廣度優先演算法

圖形的深度優先搜尋法 void dfs int current 主程式 建立圖形後,將遍歷內容印出.void main 邊線陣列 int i for i 1 i 8 i creategraph node,20 建立圖形 printf 圖形的鄰接鍊錶內容 n for i 1 i 8 i printf ...

廣度優先演算法 越獄

建築師麥可為了救含冤入獄的哥哥,自己也想辦法進了監獄。現在他找到了哥哥,想帶著哥哥越獄。可是監獄地形複雜,還有一道道的電網攔在面前。電網非常危險,不到無路可走,麥可都不想嘗試鑽過電網。請幫麥可兄弟設計一條穿過電網最少的路線。只能往相鄰的四個方向前進 第一行 n,表示地圖的大小 10 n 1000 接...