Leetcode 994 腐爛的的橘子

2021-10-03 13:06:30 字數 1171 閱讀 8283

題目

題目鏈結

思路

利用佇列進行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 初始狀態的爛橘...