Leetcode--994. 腐烂的橘子(java)
在給定的網(wǎng)格中,每個單元格可以有以下三個值之一:
值?0?代表空單元格;
值?1?代表新鮮橘子;
值?2?代表腐爛的橘子。
每分鐘,任何與腐爛的橘子(在 4 個正方向上)相鄰的新鮮橘子都會腐爛。
返回直到單元格中沒有新鮮橘子為止所必須經(jīng)過的最小分鐘數(shù)。如果不可能,返回?-1。
?
示例 1:
輸入:[[2,1,1],[1,1,0],[0,1,1]]
輸出:4
示例 2:
輸入:[[2,1,1],[0,1,1],[1,0,1]]
輸出:-1
解釋:左下角的橘子(第 2 行, 第 0 列)永遠(yuǎn)不會腐爛,因為腐爛只會發(fā)生在 4 個正向上。
示例 3:
輸入:[[0,2]]
輸出:0
解釋:因為 0 分鐘時已經(jīng)沒有新鮮橘子了,所以答案就是 0 。
?
提示:
1 <= grid.length <= 10
1 <= grid[0].length <= 10
grid[i][j] 僅為?0、1?或?2
代碼:
class?Solution?{
????public?int?orangesRotting(int[][]?grid)?{
????????if(grid.length==0)
????????{
????????????return?0;
????????}
????????int?count=1,k=3;//count表示每次遍歷有沒有新增腐爛的,k表示這是第幾次腐爛的,3開始是第一次
????????while(count!=0)
????????{
????????????for(int?i=0;i<grid.length;i++)
????????????{
????????????????if(i==0)
????????????????{
????????????????????count?=?0;
????????????????}
????????????????for(int?j?=0;j<grid[0].length;j++)
????????????????{
????????????????????if(grid[i][j]==0)
????????????????????{
????????????????????????continue;
????????????????????}
????????????????????if(grid[i][j]==1)
????????????????????{
????????????????????????if(i>0&&grid[i-1][j]>=2&&grid[i-1][j]<k)
????????????????????????{
????????????????????????????count++;
????????????????????????????grid[i][j]=k;
????????????????????????}
????????????????????????else?if(i<grid.length-1&&grid[i+1][j]>=2&&grid[i+1][j]<k)
????????????????????????{
????????????????????????????count++;
????????????????????????????grid[i][j]?=?k;
????????????????????????}
????????????????????????else?if(j>0&&grid[i][j-1]>=2&&grid[i][j-1]<k)
????????????????????????{
????????????????????????????count++;
????????????????????????????grid[i][j]?=?k;
????????????????????????}
????????????????????????else?if(j<grid[0].length-1&&grid[i][j+1]>=2&&grid[i][j+1]<k)
????????????????????????{
????????????????????????????count++;
????????????????????????????grid[i][j]?=?k;
????????????????????????}
????????????????????}?
????????????????}
????????????}
????????????k++;
????????}
????????for(int?i=0;i<grid.length;i++)
????????{
????????????for(int?j?=0;j<grid[0].length;j++)
????????????{
????????????????if(grid[i][j]==1)
????????????????{
????????????????????return?-1;
????????????????}
????????????}
????????}
????????return?k?-?4;
????}
}
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的Leetcode--994. 腐烂的橘子(java)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html标签始终在右下角,html+ja
- 下一篇: Leetcode--123. 买卖股票的