面试必考精华版Leetcode994. 腐烂的橘子

题目:

面试必考精华版Leetcode994. 腐烂的橘子_第1张图片


代码(2023年10月26日 首刷自解):

class Solution {
public:
    int orangesRotting(vector>& grid) {
    /*统计grid二维数组中有多少新鲜橘子和多少烂橘子,将所有的烂橘子存入一个三元队列中
      其中,队列前两个参数表示烂橘子坐标,第三个参数代表是第几代烂橘子
      同时,统计新鲜橘子数量*/
        int m = grid.size();
        int n = grid[0].size();
        int fresh=0;
        queue> q;
        for(int i=0;i dx ={1,0,-1,0};
        vector dy ={0,1,0,-1};
        int time =0;//记录队列最后一个烂橘子是第几代
        while(!q.empty()){
            auto [cx,cy,d]=q.front();
            time=d;
            q.pop();
            for(int i=0;i<4;++i){
                int nx=cx+dx[i];
                int ny=cy+dy[i];
                //检查烂橘子四个方向上的是否在二维数组内部且是否是新鲜橘子
                if(nx>=0 && nx=0 && ny0){
            return -1;
        }else{
            return time;
        }
    }
};

你可能感兴趣的:(#,leetcode,---medium,前端,算法,javascript)