LeetCode994. 腐烂的橘子

//994. 腐烂的橘子
class Solution {
public:vector<vector<int>>s;vector<vector<int>>f;const int inf = 0x3f3f3f3f;int m, n;bool legal(int i, int j) {return (0 <= i && i < n && 0 <= j && j < m);}void bfs(int i, int j) {queue<pair<int, int>>p;p.push({ i,j });int cnt = -1;while (p.size()) {cnt++;queue<pair<int, int>>q;while (p.size()) {auto t = p.front(); p.pop();int x = t.first;int y = t.second;if (legal(x, y)) {if (s[x][y]) {s[x][y] = 0;f[x][y] = min(f[x][y], cnt);q.push({ x - 1,y });q.push({ x,y - 1 });q.push({ x + 1,y });q.push({ x,y + 1 });}}}p = q;}}int orangesRotting(vector<vector<int>>& grid) {n = grid.size();m = grid[0].size();vector<vector<int>>ft(n, vector<int>(m, inf));f = ft;for (int i = 0; i < n; i++)for (int j = 0; j < m; j++)if (grid[i][j] == 2) {s = grid;f[i][j] = 0;bfs(i, j);}int ans = 0;for (int i = 0; i < n; i++)for (int j = 0; j < m; j++)if (grid[i][j]) ans = max(ans, f[i][j]);if (ans == inf) return -1;return ans;}
};


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部