僵尸矩阵 · Zombie in Matrix(多原bfs)
给定一个 2D 网格每个单元格要么是墙 2要么是僵尸 1要么是人 0数字 0、1、2。僵尸每天可以将最近的人上/下/左/右变成僵尸但是 不能穿墙。 把所有人都变成僵尸需要多长时间 如果不能将所有人变成僵尸则返回 -1。题解九章算法 - 帮助更多程序员找到好工作硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧多源点bfs。 从所有的源点出发往外感染即可。class Coordinate { int x, y; public Coordinate(int x, int y) { this.x x; this.y y; } } public class Solution { public int PEOPLE 0; public int ZOMBIE 1; public int WALL 2; public int[] deltaX {1, 0, 0, -1}; public int[] deltaY {0, 1, -1, 0}; /** * param grid a 2D integer grid * return an integer */ public int zombie(int[][] grid) { if (grid null || grid.length 0 || grid[0].length 0) { return 0; } int n grid.length; int m grid[0].length; // initialize the queue count people int people 0; QueueCoordinate queue new LinkedList(); for (int i 0; i n; i) { for (int j 0; j m; j) { if (grid[i][j] PEOPLE) { people; } else if (grid[i][j] ZOMBIE) { queue.offer(new Coordinate(i, j)); } } } // corner case if (people 0) { return 0; } // bfs int days 0; while (!queue.isEmpty()) { days; int size queue.size(); for (int i 0; i size; i) { Coordinate zb queue.poll(); for (int direction 0; direction 4; direction) { Coordinate adj new Coordinate( zb.x deltaX[direction], zb.y deltaY[direction] ); if (!isPeople(adj, grid)) { continue; } grid[adj.x][adj.y] ZOMBIE; people--; if (people 0) { return days; } queue.offer(adj); } } } return -1; } private boolean isPeople(Coordinate coor, int[][] grid) { int n grid.length; int m grid[0].length; if (coor.x 0 || coor.x n) { return false; } if (coor.y 0 || coor.y m) { return false; } return (grid[coor.x][coor.y] PEOPLE); } }

相关新闻

Android Studio 模拟器(AVD)安装与排错

Android Studio 模拟器(AVD)安装与排错

之前一直用真机(MUMU模拟器)做测试,突然想使用一下咱们的Android Studio自带模拟器,没想到遇到了不少坑,写此文章记录一番。 Android Studio自带模拟器(AVD),怎么安装呢?本文就一步一步来操作 1、选择AVD Manager(Device Manager…

2026/7/23 17:37:13 阅读更多 →
从Figma到生成式UI,再到自动交付代码——AI一站式设计工作流全链路拆解(含可复用流程图谱)

从Figma到生成式UI,再到自动交付代码——AI一站式设计工作流全链路拆解(含可复用流程图谱)

更多请点击: https://kaifayun.com 第一章:从Figma到生成式UI,再到自动交付代码——AI一站式设计工作流全链路拆解(含可复用流程图谱) 现代前端开发正经历一场由AI驱动的设计-代码协同革命。传统“设计→切图→手写HT…

2026/7/22 15:39:57 阅读更多 →
分布式数据库Redis的简介、安装与设置使用指令

分布式数据库Redis的简介、安装与设置使用指令

分布式数据库Redis的简介、安装与设置使用指令Redis的简介Redis的组成Redis Clinet(应用系统)Redis ServerRedis协议网络模型序列化协议Redis Clinet和Redis Server间的交互模式串行的请求/响应模式双工的请求/响应模式(pipeline的实现&#…

2026/7/23 17:37:50 阅读更多 →

最新新闻

Github项目分享——免费的编程中文书籍索引

Github项目分享——免费的编程中文书籍索引

免费的编程中文书籍索引 祝大家除夕快乐,今天给大家推荐一个编程电子书的项目,因为计算机专业的书普遍量大且贵,所以这个项目可以让大家节约一定的费用,更好的学习编程。 项目地址 https://github.com/justjavac/free-programmi…

2026/7/23 17:52:21 阅读更多 →
xss-labs搭建及通关攻略

xss-labs搭建及通关攻略

目录 xss-labs搭建 xss-labs通关攻略 level-1 level-2 level-3~level-4 level-5 level-6 level-7 level-8 level-9 level-10 level-11~level-13 level-14 level-15 level-16 level-17~level-18 level-19~level-20 xss-labs搭建 (1)首…

2026/7/23 17:52:21 阅读更多 →
OpenWrt搭建time machine软路由搭建苹果时间机器服务器

OpenWrt搭建time machine软路由搭建苹果时间机器服务器

硬件:r4s刷的openwrt固件 机械硬盘 软件:netatalk avahi 1.1 将硬盘连接到软路由并挂载 1.2 此步骤为建议步骤,将存储磁盘格式化为hfs可在还原时直接通过usb连接mac(这将极大加快mac从时间机器恢复的速度)。将外置驱动器插入 Mac #此命令…

2026/7/23 17:52:21 阅读更多 →
RAG检索优化:混合检索与查询扩展技术详解

RAG检索优化:混合检索与查询扩展技术详解

1. RAG检索优化方法概述在构建基于大语言模型(LLM)的问答系统时,检索增强生成(Retrieval-Augmented Generation, RAG)已成为主流技术方案。RAG通过将外部知识检索与文本生成相结合,有效解决了LLM知识固化、幻觉等问题。但实际应用中,检索环节…

2026/7/23 17:52:21 阅读更多 →
深入解析多层神经网络MLP:原理、实现与应用

深入解析多层神经网络MLP:原理、实现与应用

1. 多层神经网络MLP:从理论到实践的深度解析第一次接触多层感知机(MLP)时,我被它简洁的结构和强大的表达能力所震撼。作为深度学习领域最基础的网络架构之一,MLP不仅是理解神经网络的起点,更是许多复杂模型…

2026/7/23 17:52:21 阅读更多 →
游戏账号交易APP定制开发游戏账号交易系统制作

游戏账号交易APP定制开发游戏账号交易系统制作

随着游戏行业规模增加,热度起来以后,目前游戏账号交易需求量也在随着游戏热度上涨,像螃蟹、氪金兽、盼之等一些知名的游戏账号交易的平台业务量也在增加。像一些小的账号交易工作室业务量也在增加,随着单量的增加,再用…

2026/7/23 17:51:21 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻