• 994.腐烂的橘子


    原题链接

    题解

    用BFS直接套就行

    代码如下

    class Solution {
    public:
        int st[11][11];
        int orangesRotting(vector<vector<int>>& grid) {
            int lenx = grid.size();
            if(lenx == 0) return -1;
            int leny = grid[0].size();
            int sum = 0;
            int dx[4] = {0, 0, 1, -1}, dy[4] = {1, -1, 0 ,0};
            queue<pair<int, int>> q;
            for(int i = 0; i < 11; ++i) memset(st[i], -1, sizeof st[i]);
            for(int i = 0; i < lenx; ++i){
                for(int j = 0; j < leny; ++j){
                    if(grid[i][j] == 2) q.push({i, j}), st[i][j] = 0;
                    else if(grid[i][j] == 1) sum ++;
                }
            }
    
            int res = 0;
            while(q.size()){
                auto t = q.front(); q.pop();
                if(st[t.first][t.second] != res) res ++; 
                for(int i = 0; i < 4; ++i){
                    int x = t.first + dx[i];
                    int y = t.second + dy[i];
                    if(x >= 0 && x < lenx && y >= 0 && y < leny && st[x][y] == -1 && grid[x][y] == 1){
                        sum --;
                        q.push({x, y}), st[x][y] = st[t.first][t.second] + 1;
                    }
                }
            }
    
            return sum == 0? res : -1;
        }
    };
    
  • 相关阅读:
    Alpha阶段项目复审
    复审与事后分析
    测试与发布(Alpha版本)
    第七天
    第六天
    团队作业第4周——项目冲刺
    第一天
    第二天
    第四天
    第五天
  • 原文地址:https://www.cnblogs.com/Lngstart/p/13339624.html
Copyright © 2020-2023  润新知