腐爛的橘子

2021-10-07 01:30:37 字數 832 閱讀 5815

dfs(深度優先搜尋)和 bfs(廣度優先搜尋)。它們各有不同的適應場景。

題目要求:返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。實際上就是求腐爛橘子到所有新鮮橘子的最短路徑。那麼這道題使用 bfs,應該是毫無疑問的了

這道題的主要思路是:

1.一開始,我們找出所有腐爛的橘子,將它們放入佇列,作為第 0 層的結點。

2.然後進行 bfs 遍歷,每個結點的相鄰結點可能是上、下、左、右四個方向的結點,注意判斷結點位於網格邊界的特殊情況。

3.由於可能存在無法被汙染的橘子,我們需要記錄新鮮橘子的數量。在 bfs 中,每遍歷到乙個橘子(汙染了乙個橘子),就將新鮮橘子的數量減一。如果 bfs 結束後這個數量仍未減為零,說明存在無法被汙染的橘子。

public

intorangesrotting

(int

grid)

else

if(grid[r]

[c]==2)

);// 將腐爛的橘子放入佇列,作為源點}}

}int round=0;

while

(count >0&&

!queue.

isempty()

));}

if(r+

1[c]==1)

);}if

(c-1

>

0&&grid[r]

[c-1]==

1));

}if(c+1

[c+1]==

1));

}}}if

(count >0)

else

};

腐爛的橘子

題目描述 在給定的網格中,每個單元格可以有以下三個值之一 值 0 代表空單元格 值 1 代表新鮮橘子 值 2 代表腐爛的橘子。每分鐘,任何與腐爛的橘子 在 4 個正方向上 相鄰的新鮮橘子都會腐爛。返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。如果不可能,返回 1。思路分析 class so...

腐爛的橘子

描述 給定的網格中,每個單元格可以有以下三個值之一 值 0 代表空單元格 值 1 代表新鮮橘子 值 2 代表腐爛的橘子。每分鐘,任何與腐爛的橘子 在 4 個正方向上 相鄰的新鮮橘子都會腐爛。返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。如果不可能,返回 1 解題思路 1 bfs grid是...

習題 腐爛的橘子

題目描述 在給定的網格中,每個單元格可以有以下三個值之一 值 0 代表空單元格 值 1 代表新鮮橘子 值 2 代表腐爛的橘子。每分鐘,任何與腐爛的橘子 在 4 個正方向上 相鄰的新鮮橘子都會腐爛。返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。如果不可能,返回 1。分析 先找到所有的腐爛橘子...