首页 > 编程语言 >【华为OD-E卷 - 计算疫情扩散时间 100分(python、java、c++、js、c)】

【华为OD-E卷 - 计算疫情扩散时间 100分(python、java、c++、js、c)】

时间:2025-01-19 14:59:29浏览次数:3  
标签:java 区域 python OD 感染 网格 queue int 未感染

【华为OD-E卷 - 计算疫情扩散时间 100分(python、java、c++、js、c)】

题目

在一个地图中(地图由n*n个区域组成),有部分区域被感染病菌。 感染区域每天都会把周围(上下左右)的4个区域感染。 请根据给定的地图计算,多少天以后,全部区域都会被感染。 如果初始地图上所有区域全部都被感染,或者没有被感染区域,返回-1

输入描述

  • 一行N*N个数字(只包含0,1,不会有其他数字)表示一个地图,数字间用,分割,0表示未感染区域,1表示已经感染区域 每N个数字表示地图中一行,输入数据共表示N行N列的区域地图。

例如输入1,0,1,0,0,0,1,0,1,表示地图

1,0,1 0,0,0 1,0,1

输出描述

  • 一个整数,表示经过多少天以后,全部区域都被感染 1<=N<200

备注

用例

用例一:
输入:
1,0,1,0,0,0,1,0,1
输出:
2
用例二:
输入:
0,0,0,0
输出:
-1
用例三:
输入:
1,1,1,1,1,1,1,1,1
输出:
-1

python解法

  • 解题思路:
  • 这段代码模拟了一个病毒在二维网格中传播的过程,类似于传染病的传播模型。目标是计算完全感染整个网格所需的天数,或者判断是否无法完全感染。以下是具体步骤:

输入与网格构造:

输入一维数组 arr,表示一个大小为

标签:java,区域,python,OD,感染,网格,queue,int,未感染
From: https://blog.csdn.net/CodeClimb/article/details/145143656

相关文章

  • java 抽象类
    ​父类中的方法,被它的子类们重写,子类各自的实现都不尽相同。那么父类的方法声明和方法主体,只有声明还有意义,而方法主体则没有存在的意义了(因为子类对象会调用自己重写的方法)。换句话说,父类可能知道子类应该有哪个功能,但是功能具体怎么实现父类是不清楚的(由子类自己决定),......
  • Python 项目和Pytorch 项目的环境构建
    python项目环境搭建首先下载软件包,打开安装创建项目:点击主菜单新建项目位置+pythonProject1构建python环境condecreate–p.envpython=3.10解释器:文件设置解释器本地解释器现有调试运行pytorch项目环境搭建先检查版本pip--version首先下载anaconda安装包这里......
  • leetcode11. 盛最多水的容器,双指针法
    leetcode11.盛最多水的容器给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。示例1:输入:[1......
  • Java-抽象方法
    抽象方法:●抽象方法:将共性的行为(方法)抽取到父类之后。由于每一个子类执行的内容是不一样,所以,在父类中不能确定具体的方法体。该方法就可以定义为抽象方法。●抽象类:如果一个类中存在抽象方法,那么该类就必须声明为抽象类●抽象方法的定义格式:publicabstract返回值类型方......
  • java—接口
    接口:是一种规则,是对行为的抽象。接口的定义和使用接口用关键字interface来定义publicinterface接口名{}接口不能实例化接口和类之间是实现关系,通过implements关键字表示publicclass类名implements接口名{}接口的子类(实现类)要么重写接口中的所有抽象方法要么是抽......
  • leetcode——三数之和(java)
    给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:输入:nums=[-1,0,1,2,-1,-4]输......
  • Linux 上安装 Node.js
    在Linux上安装Node.js的方法取决于你使用的发行版。以下是常见的几种安装方法:方法1:通过包管理器安装(推荐)对于Ubuntu/Debian系统:更新系统包索引:sudoaptupdate安装Node.js(LTS版本)你可以直接使用Ubuntu/Debian的官方包管理器安装Node.js,但是推荐使用NodeS......
  • 前端必知必会-Node.js连接MongoDB 创建集合
    文章目录Node.js连接MongoDB创建集合创建集合总结Node.js连接MongoDB创建集合MongoDB中的集合与MySQL中的表相同创建集合要在MongoDB中创建集合,请使用createCollection()方法:示例获取您自己的Node.js服务器创建一个名为“customers”的集合:varMon......
  • 前端必知必会-Node.js连接MongoDB 删除集合
    文章目录Node.js连接MongoDB删除集合删除集合db.dropCollection总结Node.js连接MongoDB删除集合删除集合您可以使用drop()方法删除表或MongoDB中所谓的集合。drop()方法采用包含错误对象和结果参数的回调函数,如果成功删除集合,则返回true,否则返回false。......
  • Java初学者笔记-05、集合框架
    集合体系集合是可变长的。Collection:代表单列集合,每个元素包含一个值。Map:代表双列集合,每个元素包含两个值。Collection集合List系列集合:添加的元素是有序、可重复、有索引。ArrayList、LinekdList:有序、可重复、有索引。Set系列集合:添加的元素是无序、不重复、无索......