精華區beta Marginalman 關於我們 聯絡資訊
※ 引述《JIWP (神楽めあ的錢包)》之銘言: : 2290. Minimum Obstacle Removal to Reach Corner : 思路: : (2) BFS 可以直接用一個Deque (cost, r, c) grid[i][j]=0就加到前面 grid[i][j]=1就加到後面 ```python class Solution: def minimumObstacles(self, grid: List[List[int]]) -> int: len_r, len_c = len(grid), len(grid[0]) grid[0][0] = -1 queue = deque([(0, 0, 0)]) # cost, r, c while queue: cost, r, c = queue.popleft() if r == len_r-1 and c == len_c-1: return cost for nr, nc in (r+1, c), (r-1, c), (r, c+1), (r, c-1): if 0 <= nr < len_r and 0 <= nc < len_c and grid[nr][nc] != -1: if grid[nr][nc] == 0: queue.appendleft((cost, nr, nc)) else: queue.append((cost+1, nr, nc)) grid[nr][nc] = -1 ``` -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 94.156.205.7 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1732801965.A.F8C.html
cities516: Deque 超方便的 11/28 22:47