華為優招面試題---迷宮問題
昨天參加了華為優招,被問到一道演算法題,當時,有點思路,記得不論是在人工智慧課還是在演算法課上,這些都有講到過,然後想了好久,回答出來了不是一個最優解的答案。下來總結一下這道題的思路。
題目
有一個迷宮,裡面有障礙物,最左上角是入口,右下角是出口,請找出一條路徑可以走出迷宮。大致就像下面這個圖(陰影部分表示有障礙物):
如何找到一條從入口通往出口的路徑?
思路
當時的想法:按照我們走迷宮的思路一樣,判斷當前位置的可走的方向有一個還是多個,如果有一個方向可走,那沒有別的選擇,前進;如果有多個方向可走,就先選一條去走,並把這個位置設一個標記;如果各個方向不可走回退,退到最近的設了標記的位置上。這樣一次次迴圈就可以找到一條路徑。
接著面試官問,這個想法這樣想很簡單,那有沒有想過如何去實現?(資料結構這些如何去設計)
我回答可以用樹來表示,像下面這樣:
有路徑就擴充套件樹節點;沒有路徑就表示該節點不能再擴充套件,也就是沒有路可走的情況。如果沿著樹去遍歷,擴充套件到了一個沒有子孩子的節點時,就需要再回溯,回溯到上一個有標記的節點,繼續其他分支的擴充套件。這種應該算是樹的深度優先遍歷,但這樣是不能找到最優路徑的,有可能找出來的是最長的。如何去找最優路徑沒有回答上來,面試官提了一下,可以用廣度優先遍歷(BFS)來做,這樣得到的應該就是最短路徑。
總結
這次面試在演算法和資料結構上還是比較欠缺,所以不管什麼語言,不管什麼崗位,對於演算法和資料結構還是要求要掌握的,所以下來也需在這方面努力!加油!希望找到滿意的工作!
相關文章
- 迷宮問題
- 回溯法求迷宮問題
- POJ3984-迷宮問題
- 用python深度優先遍歷解迷宮問題Python
- 華為秋招筆試題筆試
- POJ3984 迷宮問題【BFS】
- 華為2019春招筆試題筆試
- dfs深度優先搜尋解決迷宮類問題(遍歷)
- 洛谷 p1605 迷宮問題 詳解
- 迷宮問題——最短程式碼,不到70行
- 【dawn·資料結構】迷宮問題(C++)資料結構C++
- 使用A*演算法解迷宮最短路徑問題演算法
- [SDOI2012] 走迷宮 題解
- 【ybtoj】【BFS】【例題1】走迷宮
- 解密迷宮問題:三種高效演算法Java實現,讓你輕鬆穿越未知迷宮解密演算法Java
- c++迷宮問題回溯法遞迴演算法C++遞迴演算法
- (C++)資料結構實驗二——迷宮問題C++資料結構
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- 百道演算法面試題集錦!Python 實現,含華為、BAT 等校招真題!演算法面試題PythonBAT
- 華為面試題:購物車問題(01揹包演算法升級)面試題演算法
- 資料庫sql的優化問題的面試題資料庫SQL優化面試題
- 騰訊社招筆面試題面試題
- 面試反問問題面試
- 華為的Java面試題,僅供參考。Java面試題
- 面試程式碼題(華為)編輯距離面試
- 詢問面試官的面試問題面試
- Typescript 面試問題TypeScript面試
- iOS 面試問題iOS面試
- Pig面試問題面試
- Hive 面試問題Hive面試
- 2019校招Android面試題解1.0Android面試題
- 華為機試題刷題總結
- [省選聯考 2024] 迷宮守衛 題解
- 測試面試問題(二)面試
- 【面試】面試常見問題整理面試
- 300道Python面試題,備戰春招!Python面試題
- 面試被問TopK問題,可以這樣優雅的解答面試TopK
- 面試疑難問題面試
- 面試問題總結面試