力扣---腐烂的橘子
题目:

bfs思路:
感觉bfs还是很容易想到的,首先定义一个双端队列(队列也是可以的~),如果值为2,则入队列,我这里将队列中的元素定义为pair<int,int>。第一个int记录在数组中的位置,即将二维数组映射到一维数组。没明白的小伙伴可以先看看力扣hot---岛屿数量-CSDN博客。第二个int记录这个橘子第几分钟被感染。最后取最大的分钟就可以啦!(还要检查一下是否有没感染到的橘子,在橘子入队列的时候,记得将grid[x][y]改为2就可以记录橘子被感染了)
代码:
C++:
class Solution {
public:int p_x[4]={-1,1,0,0};int p_y[4]={0,0,-1,1};int orangesRotting(vector<vector<int>>& grid) {deque<pair<int,int>> q;int m=grid.size();int n=grid[0].size();int cnt=0;int res=0;//初始化qfor(int i=0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j]==2){q.push_back({i*n+j,cnt}); //把数组转换成1维,并且记录第几分钟}}}//开始腐烂while(!q.empty()){//popauto temp=q.front();q.pop_front();//腐烂四周int tempx=temp.first/n;int tempy=temp.first%n;int tempcnt=temp.second;//if(grid[tempx][tempy]==2){continue;}for(int k=0;k<4;k++){int x=tempx+p_x[k];int y=tempy+p_y[k];if(x>=0 && x<m && y>=0 && y<n){if(grid[x][y]==0||grid[x][y]==2){continue;}grid[x][y]=2;q.push_back({x*n+y,tempcnt+1});cnt=max(cnt,tempcnt+1);}}}for(int i=0;i<m;i++){for(int j=0;j<n;j++){if(grid[i][j]==1){return -1;}}}return cnt;}
};
Python代码就不附啦,因为和今天发布的力扣---接雨水---单调队列-CSDN博客Python代码很像哦
相关文章:
力扣---腐烂的橘子
题目: bfs思路: 感觉bfs还是很容易想到的,首先定义一个双端队列(队列也是可以的~),如果值为2,则入队列,我这里将队列中的元素定义为pair<int,int>。第一个int记录在数组中的位…...
【开源物联网平台】FastBee使用EMQX5.0接入步骤
🌈 个人主页:帐篷Li 🔥 系列专栏:FastBee物联网开源项目 💪🏻 专注于简单,易用,可拓展,低成本商业化的AIOT物联网解决方案 目录 一、将java内置mqtt broker切换成EMQX5…...
【数学】【组合数学】1830. 使字符串有序的最少操作次数
作者推荐 视频算法专题 本博文涉及知识点 数学 组合数学 LeetCode1830. 使字符串有序的最少操作次数 给你一个字符串 s (下标从 0 开始)。你需要对 s 执行以下操作直到它变为一个有序字符串: 找到 最大下标 i ,使得 1 < i…...
算法(数据结构)面试问题准备 二分法/DFS/BFS/快排
一、算法概念题 1. 二分法 总结链接几种查找情况的模板另一个好记的总结总结:搜索元素两端闭,while带等,mid1,结束返-1 搜索边界常常左闭右开,while小于,mid看边界开闭,闭开,结束i…...
Unity3d C#实现文件(json、txt、xml等)加密、解密和加载(信息脱敏)功能实现(含源码工程)
前言 在Unity3d工程中经常有需要将一些文件放到本地项目中,诸如json、txt、csv和xml等文件需要放到StreamingAssets和Resources文件夹目录下,在程序发布后这些文件基本是对用户可见的状态,造成信息泄露,甚至有不法分子会利用这些…...
解释一下分库分表的概念和优缺点。如何设计一个高性能的数据库架构?
解释一下分库分表的概念和优缺点。 分库分表是数据库架构优化的常见手段,主要用于解决单一数据库或表在数据量增大、访问频率提高时面临的性能瓶颈和扩展性问题。 概念: 分库(Sharding-Database): 将原本存储在一个…...
功能强大使用简单的截图/贴图工具,PixPin
一、下载链接 PixPin 截图/贴图/长截图/文字识别/标注 | PixPin 截图/贴图/长截图/文字识别/标注 (pixpinapp.com) 二、功能 截图/贴图/长截图/文字识别/标注 三、安装教程 根据提示安装即可: 四、快捷键 1.软件自带快捷键(右击PixPin查看 )…...
机器学习周报第32周
目录 摘要Abstract一、文献阅读1.论文标题2.论文摘要3.论文背景4.论文方案4.1 多视角自注意力网络4.2 距离感知4.3 方向信息4.4 短语模式 二、self-attention 摘要 本周学习了多视角自注意力网络,在统一的框架下联合学习输入句子的不同语言学方面。具体来说&#x…...
人工智能|机器学习——DBSCAN聚类算法(密度聚类)
1.算法简介 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法,簇集的划定完全由样本的聚集程度决定。聚集程度不足以构成簇落的那些样本视为噪声点,因此DBSCAN聚类的方式也可以用于异常点的检测。 2.算法原…...
Excel F4键的作用
目录 一. 单元格相对/绝对引用转换二. 重复上一步操作 一. 单元格相对/绝对引用转换 ⏹ 使用F4键 如下图所示,B1单元格引用了A1单元格的内容。此时是使用相对引用,可以按下键盘上的F4键进行相对引用和绝对引用的转换。 二. 重复上一步操作 ⏹添加或删除…...
前端实现跨域的六种解决方法
本专栏是汇集了一些HTML常常被遗忘的知识,这里算是温故而知新,往往这些零碎的知识点,在你开发中能起到炸惊效果。我们每个人都没有过目不忘,过久不忘的本事,就让这一点点知识慢慢渗透你的脑海。 本专栏的风格是力求简洁…...
macOS上实现「灵动岛」效果
自从Apple iPhone推出了「灵动岛」功能后,用户们就被其优雅的设计和强大的功能所吸引。然而,作为macOS用户,我们一直在等待这一功能能够在我们的设备上实现。现在,随着新的应用程序的推出,我们终于可以在我们的Mac上体…...
幕译--本地字幕生成与翻译--Whisper客户端
幕译–本地字幕生成与翻译 本地离线的字幕生成与翻译,支持GPU加速。可免费试用,无次数限制 基于Whisper,希望做最好的Whisper客户端 功能介绍 本地离线,不用担心隐私问题支持GPU加速支持多种模型支持(中文、英语、日…...
链表基础知识详解
链表基础知识详解 一、链表是什么?1.链表的定义2.链表的组成3.链表的优缺点4.链表的特点 二、链表的基本操作1.链表的建立2.链表的删除3.链表的查找4.链表函数 一、链表是什么? 1.链表的定义 链表是一种物理存储单元上非连续、非顺序的存储结构…...
GPT-prompt大全
ChatGPT目前最强大的的工具是ChatGPT Plus,不仅训练数据更新到了2023年,而且还可以优先访问新功能。对于程序员来说,升级到ChatGPT Plus,将会带来更多的便利和效率提升。 根据 升级ChatGPT Plus保姆级教程,1分钟就可以…...
的发射点2
☞ 通用计算机启动过程 1️⃣一个基础固件:BIOS 一个基础固件:BIOS→基本IO系统,它提供以下功能: 上电后自检功能 Power-On Self-Test,即POST:上电后,识别硬件配置并对其进行自检,…...
深入揭秘Lucene:全面解析其原理与应用场景(一)
本系列文章简介: 本系列文章将深入揭秘Lucene,全面解析其原理与应用场景。我们将从Lucene的基本概念和核心组件开始,逐步介绍Lucene的索引原理、搜索算法以及性能优化策略。通过阅读本文,读者将会对Lucene的工作原理有更深入的了解…...
拿捏算法的复杂度
目录 前言 一:算法的时间复杂度 1.定义 2.简单的算法可以数循环的次数,其余需要经过计算得出表达式 3.记法:大O的渐近表示法 表示规则:对得出的时间复杂度的函数表达式,只关注最高阶,其余项和最高阶…...
C语言实战—猜数字游戏(涉及循环和少部分函数内容)
对于前面一些内容的总结 不妨跟着一起试试吧 折半查找算法(二分查找) 比如我买了一双鞋,你好奇问我多少钱,我说不超过300元。你还是好奇,你想知道到底多少,我就让 你猜,你会怎么猜?…...
#define MODIFY_REG(REG, CLEARMASK, SETMASK)
#define MODIFY_REG(REG, CLEARMASK, SETMASK) WRITE_REG((REG), (((READ_REG(REG)) & (~(CLEARMASK))) | (SETMASK))) 这个宏 MODIFY_REG 是在嵌入式编程中,它用于修改一个寄存器的特定位,而不影响其他位。这个宏接受三个参数ÿ…...
ClearerVoice-Studio语音处理全流程:电话/直播/会议多采样率适配方案
ClearerVoice-Studio语音处理全流程:电话/直播/会议多采样率适配方案 1. 开箱即用的语音处理利器 你是否遇到过这样的困扰:重要的会议录音背景噪音太大,直播时环境嘈杂影响效果,或者需要从多人对话中提取特定人物的声音…...
granite-4.0-h-350m入门教程:Ollama部署+中文医疗问答实测
granite-4.0-h-350m入门教程:Ollama部署中文医疗问答实测 1. 快速了解granite-4.0-h-350m模型 granite-4.0-h-350m是一个轻量级的指令跟随模型,专门为资源受限的环境设计。这个模型基于Granite-4.0-H-350M-Base进行精细调优,采用了多种先进…...
GD32F407串口+DMA+IDLE中断实战:手把手教你用GD库实现稳定可靠的数据收发
GD32F407串口DMAIDLE中断实战:构建工业级数据通信框架 在工业自动化、智能硬件等嵌入式应用场景中,稳定可靠的串口通信往往是系统设计的核心挑战之一。当面对高速、不定长数据流时,传统的轮询或简单中断方式常会出现数据丢失、响应延迟等问题…...
Luckfox Pico SDK环境搭建与镜像编译全流程指南
1. 环境准备:Ubuntu系统配置 第一次接触Luckfox Pico开发板的开发者,最头疼的往往是环境搭建。我刚开始用这块板子时,光是配环境就折腾了两天。现在把完整流程梳理出来,帮你避开我踩过的那些坑。 首先明确一点:官方推荐…...
DeerFlow深度研究助理5分钟快速上手:零基础搭建个人AI研究助手
DeerFlow深度研究助理5分钟快速上手:零基础搭建个人AI研究助手 1. 认识DeerFlow:您的智能研究伙伴 DeerFlow是一款基于LangStack技术框架开发的深度研究助理工具。它能像专业研究员一样帮您完成信息搜集、数据分析、报告撰写甚至播客制作等工作。想象一…...
技术实战:基于CLI与AgentSkill 构建工业级AI影视解说自动化链路
一、 AI影视解说新范式:从工具堆砌到自动化 Pipeline 演进 进入 2026 年,短视频生产已从单纯的“工具使用”进入到“工程化自动生产”阶段。传统的 GUI(图形界面)工具虽然易上手,但在面对大规模账号矩阵运营、高频内容…...
SDMatte多模态输入探索:结合文本描述实现指代性抠图
SDMatte多模态输入探索:结合文本描述实现指代性抠图 1. 效果亮点预览 想象一下这样的场景:面对一张复杂的家庭聚会照片,你只需要输入"穿红色衣服的人",AI就能自动识别并精确抠出目标人物。这正是SDMatte最新探索的多模…...
动手学深度学习——使用注意力机制的 Seq2Seq 代码
1. 前言上一篇我们已经从原理上理解了使用注意力机制的 Seq2Seq:基础 Seq2Seq 的问题是固定上下文向量注意力机制让解码器在每一步都能动态查看输入序列query 通常来自解码器当前状态key 和 value 通常来自编码器所有时间步输出这一篇就继续按李沐的节奏,…...
炸了!扒完 51 万行泄露的 AI 源码,我发现:你的 AI 傻,根本不是模型的锅
你有没有过这种体验:兴冲冲地用上了号称 “全能 AI 助手” 的产品,结果发现它要么记不住你昨天说过的话,要么干着干着就忘了自己要干嘛,要么就是动不动就把你的文件搞乱?我之前也一样,直到上个月࿰…...
Java 微服务弹性设计模式:构建可靠的分布式系统
Java 微服务弹性设计模式:构建可靠的分布式系统 别叫我大神,叫我 Alex 就好。今天我们来聊聊 Java 微服务弹性设计模式,这些模式可以帮助我们构建更可靠、更弹性的分布式系统。 一、引言 在微服务架构中,服务间的通信是不可避免的…...
