【LeetCode】3月29日打卡-Day14-BFS
題1 地圖分析
描述
你現在手里有一份大小為 N x N 的『地圖』(網格) grid,上面的每個『區域』(單元格)都用 0 和 1 標記好了。其中 0 代表海洋,1 代表陸地,你知道距離陸地區域最遠的海洋區域是是哪一個嗎?請返回該海洋區域到離它最近的陸地區域的距離。
我們這里說的距離是『曼哈頓距離』( Manhattan Distance):(x0, y0) 和 (x1, y1) 這兩個區域之間的距離是 |x0 - x1| + |y0 - y1| 。
如果我們的地圖上只有陸地或者海洋,請返回 -1。
示例 1:
輸入:[[1,0,1],[0,0,0],[1,0,1]]
輸出:2
解釋:
海洋區域 (1, 1) 和所有陸地區域之間的距離都達到最大,最大距離為 2。
示例 2:
輸入:[[1,0,0],[0,0,0],[0,0,0]]
輸出:4
解釋:
海洋區域 (2, 2) 和所有陸地區域之間的距離都達到最大,最大距離為 4。
提示:
1 <= grid.length == grid[0].length <= 100
grid[i][j] 不是 0 就是 1。
題解
這道題沒做出來,也沒有思路,下面是甜姨的方法
思路:先把所有的陸地都入隊,然后從各個陸地同時開始一層一層的向海洋擴散,那么最后擴散到的海洋就是最遠的海洋!
并且這個海洋肯定是被離他最近的陸地給擴散到的!
下面是擴散的圖示,1表示陸地,0表示海洋。每次擴散的時候會標記相鄰的4個位置的海洋:
總結
以上是生活随笔為你收集整理的【LeetCode】3月29日打卡-Day14-BFS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加速你的Python
- 下一篇: PyTorch 读取大数据