華為優招面試題---迷宮問題
昨天參加了華為優招,被問到一道演算法題,當時,有點思路,記得不論是在人工智慧課還是在演算法課上,這些都有講到過,然後想了好久,回答出來了不是一個最優解的答案。下來總結一下這道題的思路。
題目
有一個迷宮,裡面有障礙物,最左上角是入口,右下角是出口,請找出一條路徑可以走出迷宮。大致就像下面這個圖(陰影部分表示有障礙物):
如何找到一條從入口通往出口的路徑?
思路
當時的想法:按照我們走迷宮的思路一樣,判斷當前位置的可走的方向有一個還是多個,如果有一個方向可走,那沒有別的選擇,前進;如果有多個方向可走,就先選一條去走,並把這個位置設一個標記;如果各個方向不可走回退,退到最近的設了標記的位置上。這樣一次次迴圈就可以找到一條路徑。
接著面試官問,這個想法這樣想很簡單,那有沒有想過如何去實現?(資料結構這些如何去設計)
我回答可以用樹來表示,像下面這樣:
有路徑就擴充套件樹節點;沒有路徑就表示該節點不能再擴充套件,也就是沒有路可走的情況。如果沿著樹去遍歷,擴充套件到了一個沒有子孩子的節點時,就需要再回溯,回溯到上一個有標記的節點,繼續其他分支的擴充套件。這種應該算是樹的深度優先遍歷,但這樣是不能找到最優路徑的,有可能找出來的是最長的。如何去找最優路徑沒有回答上來,面試官提了一下,可以用廣度優先遍歷(BFS)來做,這樣得到的應該就是最短路徑。
總結
這次面試在演算法和資料結構上還是比較欠缺,所以不管什麼語言,不管什麼崗位,對於演算法和資料結構還是要求要掌握的,所以下來也需在這方面努力!加油!希望找到滿意的工作!
相關文章
- 回溯法求迷宮問題
- POJ3984-迷宮問題
- 回溯法解決迷宮問題
- 用python深度優先遍歷解迷宮問題Python
- 用C語言解決迷宮問題C語言
- dfs深度優先搜尋解決迷宮類問題(遍歷)
- 【dawn·資料結構】迷宮問題(C++)資料結構C++
- 迷宮問題——最短程式碼,不到70行
- 洛谷 p1605 迷宮問題 詳解
- 使用A*演算法解迷宮最短路徑問題演算法
- 迷宮問題【資料結構實驗報告】資料結構
- 【面試】如何找到迷宮出口面試
- 解密迷宮問題:三種高效演算法Java實現,讓你輕鬆穿越未知迷宮解密演算法Java
- c++迷宮問題回溯法遞迴演算法C++遞迴演算法
- (C++)資料結構實驗二——迷宮問題C++資料結構
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- [SDOI2012] 走迷宮 題解
- 走迷宮
- 華為秋招筆試題筆試
- 試題集—— 演算法提高 學霸的迷宮演算法
- 愛奇藝校招面試題面試題
- [省選聯考 2024] 迷宮守衛 題解
- 509迷宮
- PARL原始碼走讀——使用策略梯度演算法求解迷宮尋寶問題原始碼梯度演算法
- 「IT運維迷宮」那些讓人頭疼的常見問題與破局之道運維
- 騰訊社招筆面試題面試題
- 尋路者華為雲:在產業AI迷宮裡走直線產業AI
- 資料庫sql的優化問題的面試題資料庫SQL優化面試題
- 華為面試其中一題面試
- 簡單介紹Python迷宮生成和迷宮破解演算法Python演算法
- PHP 生成迷宮路線PHP
- 百道演算法面試題集錦!Python 實現,含華為、BAT 等校招真題!演算法面試題PythonBAT
- 面試問題面試
- 華為面試題:購物車問題(01揹包演算法升級)面試題演算法
- 「Golang成長之路」迷宮的廣度優先搜尋Golang
- 華為2019春招筆試題筆試
- 面試題:階乘問題面試題
- 【面試】面試題之汽水空瓶子問題面試題