前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >算法手记5

算法手记5

作者头像
修修修也
发布2025-03-17 13:44:39
发布2025-03-17 13:44:39
3200
代码可运行
举报
运行总次数:0
代码可运行

一.腐烂的苹果

牛客网题目链接(点击即可跳转):腐烂的苹果_牛客题霸_牛客网

题目详情:

本题详情如下图:


题目思路:

本题解题思路如下: 多源bfs,每层的坏果入队列,传染完周围的好果就出队列,直到队列为空,传染完毕,传染的层数就是用的时间.最后检查传染完还有没有好果,如果有那直接返回-1即可,否则返回time.


解题代码:

本题解题代码如下:

代码语言:javascript
代码运行次数:0
运行
复制
class Solution {
  public:
    int dx[4] = {0, 0, 1, -1};
    int dy[4] = {1, -1, 0, 0};
    int rotApple(vector<vector<int> >& grid) 
    {
        //多源bfs+最短路径
        queue<pair<int, int>> q;
        int time = 0;

        //所有坏果入队列
        for (int i = 0; i < grid.size(); i++) 
        {
            for (int j = 0; j < grid[0].size(); j++) 
            {
                if (grid[i][j] == 2)
                    q.push({i, j});
            }
        }
        //坏果开始bfs传染
        while (!q.empty()) 
        {
            int sz = q.size();//记录本层坏果个数,后续本层坏果传染统一算一分钟
            while (sz--) 
            {
                int x = q.front().first;
                int y = q.front().second;
                for (int i = 0; i < 4; i++) 
                {
                    int xi = x + dx[i];
                    int yi = y + dy[i];
                    if (xi >= 0 && xi < grid.size() && yi >= 0 && yi < grid[0].size() &&grid[xi][yi] == 1) 
                    {
                        grid[xi][yi] = 2;
                        q.push({ xi, yi });
                    }
                }
                q.pop();
            }
            time++;
        }
        //检查有无好果
        for (int i = 0; i < grid.size(); i++) 
        {
            for (int j = 0; j < grid[0].size(); j++) 
            {
                if (grid[i][j] == 1)
                    return -1;
            }
        }
        return time-1;
    }
};

结语

说点啥好呢...原来被墙的原因是运营商直接把发往外网的请求给扔了...怪不得...好搞笑啊哈哈哈!这道题...让我闻到了一股熟悉的二叉树的味道...所以最终还是忘记它了吗...真的遗憾呐...

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一.腐烂的苹果
    • 题目详情:
    • 题目思路:
    • 解题代码:
  • 结语
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档