我最近出現了一個求職面試,當時我被問到流行的RAT IN A MAEE問題,其中有一個由2維數組表示的迷宮,分別包含0和1的開放路徑和牆,我們必須打印最短路徑。回溯 - 如何解決「迷宮中的老鼠」這個變種?
我使用回溯解決了問題,並且還打印了所有可能的路徑。
但隨後採訪者提高了韌性水平,並要求我用一種新的條件來解決同一個問題,在這種情況下,老鼠可以絆倒「K」數量的牆,K由用戶輸入。
現在我嘗試了很多,但無法弄清楚如果跳閘K牆被允許,如何找到最短路徑。我想是否可以通過動態規劃解決,但最終無法實現。
面試官也沒有透露解決方案。 任何人都可以解釋這個問題的解決方案?
通過「跳閘」的牆壁,你的意思是通過移動或刪除牆壁? – Dukeling
這是您可以用Dijkstra解決的一個變體,其中每個節點還存儲哪些牆已被移除。 –