994 腐爛的橘子 (廣度探索)

2021-10-05 11:45:52 字數 924 閱讀 5102

解題思路

本題的核心思路是:只考慮1、2右面和下面的

如果是0,不管;

如果是1,只要右面和下面有2 ,自己就感染為2;

如果是2,只要右面和下面是1,將其感染為3(目的是讓它在本輪內無法感染別人);

如果是3,將其置為2。

end作為結束的標誌。

結束後,再次掃瞄一遍,如果還有未感染的1,就返回-1。

int

orangesrotting

(int

** grid,

int gridsize,

int* gridcolsize)

}else

if(grid[i]

[j]==2)

//先把它變成3橘子,下一次迴圈禍害新鮮橘子

//疏忽地方沒打{},if條件下有兩個語句一定要打{}

if(j <

*gridcolsize-

1&& grid[i]

[j+1]==

1)}}

}if(end)

//已經沒有可以腐爛的橘子了(也就是不存在滿足腐爛條件來使得end=0了)

break

;else count++;}

for(

int i =

0;i < gridsize;i++

)for

(int j =

0;j <

*gridcolsize;j++)if

(grid[i]

[j]==1)

return-1

;return count;

}

994 腐爛的橘子 入門廣度搜尋

在 中表示為進佇列和出佇列的操作 int n 10,m 10 地圖寬高 void bfs 移動方向的陣列 int py que.push 起點入隊 將起點入隊 while que.empty static class orange public static intorangesrotting in...

994 腐爛的橘子

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

994 腐爛的橘子

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