習題 腐爛的橘子

2021-09-26 03:18:17 字數 776 閱讀 4527

題目描述

在給定的網格中,每個單元格可以有以下三個值之一:

值 0 代表空單元格;

值 1 代表新鮮橘子;

值 2 代表腐爛的橘子。

每分鐘,任何與腐爛的橘子(在 4 個正方向上)相鄰的新鮮橘子都會腐爛。

返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。如果不可能,返回 -1。

分析:先找到所有的腐爛橘子,入隊,用第一批帶出新一批腐爛的橘子。每一批橘子都會在一分鐘之內腐爛,所以此題可以轉化為求bfs執行的大迴圈的次數。這裡mintime的更新需要有乙個標記,只有新的腐爛的橘子加入,mintime才能自加。最後bfs執行完之後,說明所有可以被腐爛的都完成了,再去遍歷grid,如何還有值為1的,說明沒有辦法完全腐爛,返回-1,如果沒有,則返回mintime。

class solution , , , };

queue> q;

if(grid.empty())

return 0;

int row = grid.size();

int col = grid[0].size();

//所有壞的入隊

for(int i = 0; i < row; i++)

}int mintime = 0;

while(!q.empty())

}if(flag)

++mintime;

}for(int i = 0; i < row; i++)

}return mintime;

}};

腐爛的橘子

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

腐爛的橘子

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

腐爛的橘子

dfs 深度優先搜尋 和 bfs 廣度優先搜尋 它們各有不同的適應場景。題目要求 返回直到單元格中沒有新鮮橘子為止所必須經過的最小分鐘數。實際上就是求腐爛橘子到所有新鮮橘子的最短路徑。那麼這道題使用 bfs,應該是毫無疑問的了 這道題的主要思路是 1.一開始,我們找出所有腐爛的橘子,將它們放入佇列,...