LeetCode 1368. 使网格图至少有一条有效路径的最小代价(BFS最短路径,难)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1368. 使网格图至少有一条有效路径的最小代价(BFS最短路径,难)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給你一個 m x n 的網格圖 grid 。 grid 中每個格子都有一個數字,對應著從該格子出發下一步走的方向。 grid[i][j] 中的數字可能為以下幾種情況:
- 1 ,下一步往右走,也就是你會從 grid[i][j] 走到 grid[i][j + 1]
- 2 ,下一步往左走,也就是你會從 grid[i][j] 走到 grid[i][j - 1]
- 3 ,下一步往下走,也就是你會從 grid[i][j] 走到 grid[i + 1][j]
- 4 ,下一步往上走,也就是你會從 grid[i][j] 走到 grid[i - 1][j]
注意網格圖中可能會有 無效數字 ,因為它們可能指向 grid 以外的區域。
一開始,你會從最左上角的格子 (0,0) 出發。我們定義一條 有效路徑 為從格子 (0,0) 出發,每一步都順著數字對應方向走,最終在最右下角的格子 (m - 1, n - 1) 結束的路徑。有效路徑 不需要是最短路徑 。
你可以花費 cost = 1 的代價修改一個格子中的數字,但每個格子中的數字 只能修改一次 。
請你返回讓網格圖至少有一條有效路徑的最小代價。
示例 1:
示例 2:
示例 3:
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/minimum-cost-to-make-at-least-one-valid-path-in-a-grid
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- BFS廣度優先搜索,最短路徑
- 將箭頭可以走到的地方全部加入隊列,并標記訪問過
- 然后將隊列里的取出,向4個方向反轉路徑,并一路添加新的沒訪問的可走點
總結
以上是生活随笔為你收集整理的LeetCode 1368. 使网格图至少有一条有效路径的最小代价(BFS最短路径,难)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 83. 删除排序链表中
- 下一篇: 剑指Offer - 面试题4. 二维数组