当前位置: 首页 > news >正文

2025年--Lc170--H289. 生命游戏(矩阵)--Java版

1.题目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.思路

如果你直接根据规则更新原始数组,那么就做不到题目中说的 同步 更新。假设你直接将更新后的细胞状态填入原始数组,那么当前轮次其他细胞状态的更新就会引用到当前轮已更新细胞的状态,但实际上每一轮更新需要依赖上一轮细胞的状态,是不能用这一轮的细胞状态来更新的。

在这里插入图片描述
在这里插入图片描述
nei类似一个方向矩阵,控制该细胞的前后左右的方向

3.代码实现

class Solution {public void gameOfLife(int[][] board) {//定义邻居数组int[] nei={0,-1,1};int rows=board.length;int cols=board[0].length;//// 创建复制数组 copyBoardint[][] copyBoard=new int[rows][cols];// 从原数组复制一份到 copyBoard 中for(int row=0;row<rows;row++){for(int col=0;col<cols;col++){copyBoard[row][col]=board[row][col];}}// 遍历面板每一个格子里的细胞for(int row=0;row<rows;row++){for(int col=0;col<cols;col++){// 对于每一个细胞统计其八个相邻位置里的活细胞数量(9宫格)int livenei=0;for(int i=0;i<3;i++){for(int j=0;j<3;j++){ //排除自己(偏移为 (0,0) 的那个位置),只统计 8 个相邻格子if(!(nei[i]==0&&nei[j]==0)){//真实邻居坐标,row:当前正在统计的格子行下标(0 开始)。col:当前正在统计的格子列下标(0 开始)。
//表示相对当前位置,行/列可以各自偏移 -1、0、+1。nei[i]:对行的偏移量(-1/0/1)。nei[j]:对列的偏移量(-1/0/1)。把这些偏移加到 (row, col) 上,就得到某个邻居的坐标 (r, c)。int r=(row+nei[i]);int c=(col+nei[j]);// 查看相邻的细胞是否是活细胞//边界与存活判断:(r, c) 必须在棋盘范围内(不越界);//copyBoard[r][c] == 1 表示这个邻居在旧状态是活的(通常先拷贝一份到 copyBoard,避免在同一轮更新中读到新状态);if((r<rows&&r>=0)&&(c<cols&&c>=0)&&(copyBoard[r][c]==1)){livenei=livenei+1;}}}}// 规则1/3:活细胞少于2或多于3 -> 死细胞      if((copyBoard[row][col]==1)&&(livenei<2||livenei>3)){board[row][col]=0;}//规则4if((copyBoard[row][col]==0&&(livenei==3))){board[row][col]=1;}}}
}
}
http://www.dtcms.com/a/453470.html

相关文章:

  • FC和SFC的原版说明书(扫描的PDF)
  • 网站建设方案文库我们是设计师 网站建设专家
  • 做网站自己买服务器好还是用别人的柳州企业网站建设
  • 震荡市中MACD-KDJ组合的动态参数优化思路
  • 一文了解解耦 Prefilling 与 Decoding(PD 分离)以及典型的 PD 分离方案
  • petri网自学(四)
  • 海思Hi3516CV610/Hi3516CV608开发笔记之环境搭建和固件编译
  • 学生化残差(Studentized Residual):概念、计算与应用
  • 网站建设杭州做rap的网站
  • 华为交换机实战配置案例:从基础接入到核心网络
  • OpenCV(四):视频采集与保存
  • 证券业智能化投研与分布式交易系统架构:全球发展现状、技术创新与未来趋势研究
  • AI Agent竞争进入下半场:模型只是入场券,系统架构决定胜负
  • 图书商城网站开发的目的网页设计实训报告总结1500字
  • 做俄语网站做网站傻瓜软件
  • 兼具本地式与分布式优势、针对大类通用型Web漏洞、插件外部动态化导入的轻量级主被动扫描器
  • 第4章 文件管理
  • JavaScript初识及基本语法讲解
  • RabbitMQ中Consumer的可靠性
  • 自学网站建设作业抖音代运营公司收费
  • drupal做虚拟发货网站做网站如何将一张图片直接变体
  • 监控系统1 - 项目框架 | 线程邮箱
  • CTFHub SQL注入通关笔记3:报错注入(手注法+脚本法)
  • 开源UML工具完全指南:从图形化建模到文本驱动绘图
  • 优秀网站设计欣赏北京公司网站建设公司
  • 基于 Python 构建的安全 gRPC 服务——TLS、mTLS 与 Casbin 授权实战
  • 【Java核心技术/IO】35道Java IO面试题与答案
  • ICT 数字测试原理 10 - -VCL 向量如何执行之数字单元
  • 网站目录爬行wordpress怎么做信息分类
  • 专题三:二分查找~