Skip to content

Commit 2ebf9ce

Browse files
authored
Merge pull request #1116 from ThBlitz/main
Add C solution for 994-Rotting-Oranges
2 parents 715cede + 836dee3 commit 2ebf9ce

File tree

2 files changed

+44
-1
lines changed

2 files changed

+44
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ If you would like to have collaborator permissions on the repo to merge your own
108108
<sub>[695 - Max Area of Island](https://leetcode.com/problems/max-area-of-island/)</sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub>
109109
<sub>[417 - Pacific Atlantic Waterflow](https://leetcode.com/problems/pacific-atlantic-water-flow/)</sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
110110
<sub>[130 - Surrounded Regions](https://leetcode.com/problems/surrounded-regions/)</sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub>
111-
<sub>[994 - Rotting Oranges](https://leetcode.com/problems/rotting-oranges/)</sub> | <sub><div align='center'></div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub>
111+
<sub>[994 - Rotting Oranges](https://leetcode.com/problems/rotting-oranges/)</sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub>
112112
<sub>[286 - Walls and Gates](https://leetcode.com/problems/walls-and-gates/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub>
113113
<sub>[207 - Course Schedule](https://leetcode.com/problems/course-schedule/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub>
114114
<sub>[210 - Course Schedule II](https://leetcode.com/problems/course-schedule-ii/)</sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>❌</div></sub> | <sub><div align='center'>✔️</div></sub>

c/994-Rotting-Oranges.c

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
2+
int directions[4][2] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}};
3+
4+
bool rotting_process(int** grid, int rows, int cols, int timestamp) {
5+
bool continue_process = false;
6+
for (int row = 0; row < rows; row++) {
7+
for (int col = 0; col < cols; col++) {
8+
if (grid[row][col] == timestamp) {
9+
for (int i = 0; i < 4; i++) {
10+
int r = row + directions[i][0];
11+
int c = col + directions[i][1];
12+
if (rows > r && r >= 0 && cols > c && c >= 0) {
13+
if (grid[r][c] == 1) {
14+
grid[r][c] = timestamp + 1;
15+
continue_process = true;
16+
}
17+
}
18+
}
19+
}
20+
}
21+
}
22+
return continue_process;
23+
}
24+
25+
int orangesRotting(int** grid, int gridSize, int* gridColSize){
26+
27+
int rows = gridSize;
28+
int cols = gridColSize[0];
29+
30+
int timestamp = 2;
31+
while (rotting_process(grid, rows, cols, timestamp)) {
32+
timestamp += 1;
33+
}
34+
35+
for (int row = 0; row < rows; row++) {
36+
for (int col = 0; col < cols; col++) {
37+
if (grid[row][col] == 1) {
38+
return -1;
39+
}
40+
}
41+
}
42+
return timestamp - 2;
43+
}

0 commit comments

Comments
 (0)