lee最短路算法_Lee算法的解释:迷宫运行并找到最短路径
lee最短路算法
Lee算法是什么? (What is the Lee Algorithm?)
The Lee algorithm is one possible solution for maze routing problems. It always gives an optimal solution, if one exists, but is slow and requires large memory for dense layout.
Lee算法是迷宮路由問題的一種可能解決方案。 如果存在的話,它總是提供最佳的解決方案,但是速度很慢,并且需要較大的內存才能進行密集的布局。
了解其運作方式 (Understanding how it works)
The algorithm is a ?breadth-first ?based algorithm that uses ?queues ?to store the steps. It usually uses the following steps:
該算法是基于breadth-first算法,該算法使用queues來存儲步驟。 它通常使用以下步驟:
實作 (Implementation)
C++ has the queue already implemented in the ?<queue> ?library, but if you are using something else you are welcome to implement your own version of queue.
C ++在<queue>庫中已經實現了<queue> ,但是如果您使用其他方法,則歡迎實現自己的隊列版本。
C ++代碼: (C++ code:)
int dl[] = {-1, 0, 1, 0}; // these arrays will help you travel in the 4 directions more easily int dc[] = {0, 1, 0, -1};queue<int> X, Y; // the queues used to get the positions in the matrixX.push(start_x); // initialize the queues with the start position Y.push(start_y);void lee() {int x, y, xx, yy;while(!X.empty()) // while there are still positions in the queue{x = X.front(); // set the current positiony = Y.front();for(int i = 0; i < 4; i++){xx = x + dl[i]; // travel in an adiacent cell from the current positionyy = y + dc[i];if('position is valid') //here you should insert whatever conditions should apply for your position (xx, yy){X.push(xx); // add the position to the queueY.push(yy);mat[xx][yy] = -1; // you usually mark that you have been to this position in the matrix}}X.pop(); // eliminate the first position, as you have no more use for itY.pop(); } }翻譯自: https://www.freecodecamp.org/news/lee-algorithm-maze-explained/
lee最短路算法
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的lee最短路算法_Lee算法的解释:迷宫运行并找到最短路径的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: react 最佳实践_最佳React教程
- 下一篇: 梦到自己的头发剪短了是什么意思