腐爛的橘子 C語言

2021-10-03 12:20:47 字數 1459 閱讀 3289

//首先需要佇列的相關函式

typedef

struct

queue;

//佇列基本元素

//佇列的建立

queue *

creat

(int size)

//入隊函式,出隊函式

void

inqueue

(int x,

int y,queue * queue)

void

dequeue

(queue* queue,

int*a)

//佇列判空函式

bool isempty

(queue* queue)

//佇列釋放函式

void

free

(queue* queue)

intorangesrotting

(int

** grid,

int gridsize,

int* gridcolsize)

//初始化佇列

queue* q =

creat

(size)

;//第二步,統計壞的併入佇列,並且看看是否好的為零

for(

int i =

0;i}if

(sum ==0)

return0;

int level=q->tail;

//記下同一時間壞的,用於鑑別

while(!

isempty

(q))

dequeue

(q,index);if

(index[0]

-1>=

0&& grid[index[0]

-1][index[1]

]==1)

if(index[0]

+1< gridsize && grid[index[0]

+1][index[1]

]==1)

if(index[1]

-1>=

0&& grid[index[0]

][index[1]

-1]==

1)if(index[1]

+1< gridcolsize[index[0]

]&& grid[index[0]

][index[1]

+1]==

1)}free

(q);

free

(index)

;for

(int i =

0;i < gridsize;i ++

)for

(int j =

0;j < gridcolsize[i]

;j ++)if

(grid[i]

[j]==1)

return-1

;return time;

}

腐爛的橘子

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

腐爛的橘子

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

腐爛的橘子

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