寬度優先搜尋套路

2021-08-02 07:09:32 字數 971 閱讀 6265

相比於我熟悉的深度優先搜尋策略,寬度優先搜尋**如下。

這是層次遍歷**。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

if(t->right)

}result.push_back(level);

}return result;

}};

上面是層次遍歷**,下面是把bfs結果都存進乙個vector裡。就改被注釋掉的**,再加一行就可以了,基本沒變。

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

if(t->right) }}

return result;

}};

下是用dfs實現層次遍歷

vector

> result;

vector

> levelorderbottom(treenode* root)

void bfs(treenode* root,int level)

);result[level].push_back(root->val);

bfs(root->left,level+1);

bfs(root->right,level+1);

}

其中,最重要的是傳遞了level這個引數,然後讓每個節點在對應的vector中儲存

就是這一句很重要

result

[level]

.push_back(root->val);

寬度優先搜尋

include using namespace std const int n 700 const int inf 0x3f3f3f3f int dir 10 int n,a,b,ans 1000000 flag 0 int floor n struct node int check node tm...

寬度優先搜尋

寬度優先搜尋演算法 又稱廣度優先搜尋 是最簡便的圖的搜尋演算法之一,這一演算法也是很多重要的圖的演算法的原型。dijkstra單源最短路徑演算法和prim最小生成樹演算法都採用了和寬度優先搜尋類似的思想。其別名又叫bfs,屬於一種盲目搜尋法,目的是系統地展開並檢查圖中的所有節點,以找尋結果。換句話說...

寬度優先搜尋

寬度優先搜尋也是搜尋的手段之一。它與深度優先搜尋類似,從某個狀態出發探索所有可以到達的狀態。const int inf 100000000 使用pair表示狀態時,使用typedef會更加方便一些 typedef pair p char maze max n max m 1 表示迷宮的字串陣列 in...