題目
題目鏈結
思路
利用佇列進行bfs,我這裡用了兩種方法,
第一種方法借用了乙個外部陣列,用來儲存節點是在第幾次侵染時被染成壞橘子的,
這樣當乙個好橘子將被染成壞橘子時,只需要找到侵染源,然後加1就可以了,壞處是佔記憶體,耗時;
第二種方法是先得到佇列中元素的數量,就是上一次侵染所感染的總數,直接迴圈這麼多次就可以了;
**typedef pair<
int,
int> pr;
class
solution
;int y[4]
=;int status[10]
[10];
//外部陣列
memset
(status,0,
sizeof
(status));
int cnt =0;
queue q;
//先將壞的橘子入隊
for(
int i=
0; isize()
; i++)}
//如果好橘子的數量剛開始就等於零,直接返回0
if(cnt==0)
return0;
int ans =0;
while
(!q.
empty()
)}}return cnt>0?
-1:ans;}}
;
typedef pair<
int,
int> pr;
class
solution
;int y[4]
=;int cnt =0;
queue q;
//先將壞的橘子入隊
for(
int i=
0; isize()
; i++)}
//如果好橘子的數量剛開始就等於零,直接返回0
if(cnt==0)
return0;
int ans =0;
while
(!q.
empty()
)}}if
(flag) ans++;}
return cnt>0?
-1:ans;}}
;
Leetcode 994 腐爛的橘子
在給定的網格中,每個單元格可以有以下三個值之一 值 0 代表空單元格 值 1 代表新鮮橘子 值 2 代表腐爛的橘子。每分鐘,任何與腐爛的橘子 在 4 個正方向上 相鄰的新鮮橘子都會腐爛。返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。如果不可能,返回 1。示例 1 輸入 2,1,1 1,1,...
LeetCode 994 腐爛的橘子
題目鏈結 bfs 廣度優先遍歷 這道題跟leetcode200很像,可以參考下它的bfs方法 class solution int dy public intorangesrotting int grid int count 0 int m grid.length,n grid 0 length l...
leetcode 994 腐爛的橘子
在給定的網格中,每個單元格可以有以下三個值之一 值 0 代表空單元格 值 1 代表新鮮橘子 值 2 代表腐爛的橘子。每分鐘,任何與腐爛的橘子 在 4 個正方向上 相鄰的新鮮橘子都會腐爛。返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。如果不可能,返回 1。廣度優先遍歷 bfs 初始狀態的爛橘...