矩陣中廣度優先搜尋的使用

2022-06-10 11:48:09 字數 810 閱讀 7984

這道題是leetcode中的542題-01矩陣,

題目大意是給定乙個由 0 和 1 組成的矩陣,找出每個元素到最近的 0 的距離。兩個相鄰元素間的距離為 1

輸入 [0 0 0]

[0 1 0]

[0 0 0]

輸出 [0 0 0]

[0 1 0]

[0 0 0]

輸入 [0 0 0]

[0 1 0]

[1 1 1]

輸出 [0 0 0]

[0 1 0]

[1 2 1]

注意: 給定矩陣的元素個數不超過 10000。

給定矩陣中至少有乙個元素是 0。

矩陣中的元素只在四個方向上相鄰: 上、下、左、右

這道題是典型的可以使用bfs去解決的,首頁遍歷陣列將所有非0的賦值為-1,遍歷的同時將為0的座標儲存到陣列中。遍歷之前儲存0的陣列的上下左右,在當前為0座標的資料上加1,並且儲存到陣列中

class

matrixsolution

else}}

//這兩個陣列用於取值上下左右遍歷

let bx = [-1, 1, 0, 0

]; let by = [0, 0, -1, 1

];

//遍歷stack佇列 知道為空時為止

while !stack.isempty }}

return

tempmatrix;

}}

優先關係矩陣 演算法 廣度優先搜尋

概念 廣度優先搜尋 是一種通過逐層遍歷所有訪問物件,從而找到通過最短節點數到達目標的演算法。學習準備 學習前,需要先掌握圖 graph 佇列 queue 棧 stack 的概念。還得了解 鄰接矩陣 的用法。示例 在下圖 graph 中,找到從a點到h點的最短距離。廣度優先演算法的搜尋方式 通過逐層遍...

廣度優先搜尋 鄰接矩陣

需要了解的是,圖的廣度搜尋遍歷類似於二叉樹的層次遍歷,用到了隊的操作 如下 include include define ok 1 define error 0 define true 1 define false 0 define maxvex 100typedef int datatype 設定...

搜尋 廣度優先搜尋

廣度優先搜尋一層一層地進行遍歷,每層遍歷都是以上一層遍歷的結果作為起點,遍歷乙個距離能訪問到的所有節點。需要注意的是,遍歷過的節點不能再次被遍歷。class solution,int shortestpathbinarymatrix vectorint grid length return 1 cl...