289 生命游戏

Leetcode 289:生命游戏(最详细的解法!!!) 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; 如果... 阅读详情

简单题,开两个二维数组或使用复合状态

class Solution {
public:
    // -1之前是活细胞现在是死细胞,0死细胞,1活细胞,2之前是死细胞现在是活细胞
    void gameOfLife(vector<vector<int>>& board) {
        int dx[8] = {1, 0, -1, 0, 1, -1, 1, -1};
        int dy[8] = {0, 1, 0, -1, 1, -1, -1, 1};
        for(int i = 0; i < board.size(); ++i)
            for(int j = 0; j < board[0].size(); ++j)
            {
                int alive = 0; // 该位置周围的活细胞数
                for(int k = 0; k < 8; ++k)
                {
                    int I = i + dx[k], J = j + dy[k];
                    // 该位置有效
                    if(I >= 0 && I < board.size() && J >= 0 && J < board[0].size())
                    {
                        if(board[I][J] == 1 || board[I][J] == -1) ++alive;
                        if(alive > 3) break;
                    }
                }
                if(board[i][j] == 1 && (alive < 2 || alive > 3)) board[i][j] = -1;
                if(board[i][j] == 0 && alive == 3) board[i][j] = 2;
            }
        for(int i = 0; i < board.size(); ++i)
            for(int j = 0; j < board[0].size(); ++j)
            {
                if(board[i][j] > 0) board[i][j] = 1;
                else board[i][j] = 0;
            }
    }
};
LeetCode 289 生命游戏 Python LeetCode 289题 生命游戏: 题目描述: 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细胞... 阅读详情

相关推荐

289.生命游戏

需要遍历二维数组中的每个元素,根据其周围元素的状态来更新当前元素的状态。同时要注意更新操作需同时进行,不能在更新过程中影响后续元素的判断,所以通常会使用额外的状态来标记。根据当前状态,写一个函数来计算面板上所有细胞的下一个(一次更新后的)状态。下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是同时发生的。比如,把每个函数的步骤用矩形框表示,函数调用用箭头连接,这样能帮助你更好地理解和记忆代码。个格子的面板,每一个格子都可以看成是一个细胞。表示活细胞变为死细胞,

qq_40844444的博客 1051

[leetcode][289. 生命游戏]

根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; ...

Linger0519的博客 972

【Leetcode】289.生命游戏

利用位信息进行数据压缩

明朗晨光的专栏 1123

【力扣日记】289 生命游戏

题目描述 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细胞周围八个位置的活细胞数少于两个,则该位...

Heart_for_Ling的博客 438

从公式到实践:用SPSS解锁香农多样性指数的生态洞察

本文详细介绍了如何利用SPSS软件计算和应用香农多样性指数进行生态研究。从基础公式解析到SPSS实战操作,再到生态决策支持,全面展示了该指数在物种丰富度和均匀度量化中的价值。文章特别强调了SPSS操作中的关键技巧和常见误区,为生态研究者提供了一套完整的分析解决方案。

weixin_30832143的博客 465

SAP后台JOB保姆级教程:从SM36创建到SM37监控,手把手教你搞定ABAP程序定时任务

本文详细解析SAP后台JOB从创建到监控的全流程,重点介绍SM36创建和SM37监控的操作步骤与最佳实践。通过真实案例演示如何配置定时任务、处理常见故障及实施企业级管理策略,帮助ABAP开发者高效管理后台程序执行。

weixin_30838873的博客 430

【LeetCode】289. 生命游戏 结题报告 (C++)

原题地址:https://leetcode-cn.com/problems/game-of-life/ 题目描述: 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(...

暮雨凉初透 796

以太网接口及POE设计

PoE标准 Power Over Ethernet 是有源以太网供电的简称 通过Cat-5电缆供电在IEEE 802.3af以太网供电标准中进行了定义。PoE标准以前限制在几瓦以内,但更新的PoE技术可实现更高的功率。例如,PoE+允许每端口功率高达25 W,而PoE++(四 对以太网供电系统)通过使用现有电缆的所有电线允许70 W到100 W的功率。与此PoE标准并行的是ADI公司定义的专有标准 LTPoE++™,该标准定义高达90W的受电设备(PD)功率规范(请参见表1)。 表1. ADI...

u010783226的专栏 1万+

289 生命游戏

题目描述: 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; 如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活; 如果活细胞周围八个位置有超

weixin_44171872的博客 422

手把手教你用UNI-MOL进行分子性质预测:从3D构象到实战结果

本文提供了使用UNI-MOL进行分子性质预测的完整实战指南。通过详细的环境搭建、3D构象生成、模型加载与微调步骤,手把手教你构建端到端的预测流水线。文章重点解析了如何利用UNI-MOL的3D分子表示学习能力,超越传统2D方法,实现对溶解度、活性等性质的更精准预测,并探讨了结果解读与模型分析方法。

weixin_29164091的博客 116

多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解

多目标跟踪(MOT)中的卡尔曼滤波(Kalman filter)和匈牙利(Hungarian)算法详解 1. 概览 在开始具体讨论卡尔曼滤波和匈牙利算法之前,首先我们来看一下基于检测的目标跟踪算法的大致流程。 2. 卡尔曼滤波(Kalman filter) 目标跟踪中使用的就是最基础的 Kalman filter 算法。这里也仅仅讨论最基础的 Kalman filter 算法。 卡尔曼滤波算法的过程很简单,如下图所示。最核心的两个步骤就是预测和更新(下图的 correct)。 在目标跟踪任务中,目标的

生命在于折腾! 2万+

Java实现 LeetCode 289 生命游戏

289. 生命游戏 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细胞周围八个位置的活细胞数少于两个,则该位置...

南 墙 1万+

AFSim 2.9中文手册实战指南:从安装到高级功能详解(附B站视频链接)

本文详细介绍了AFSim 2.9的安装配置、基础功能操作和高级功能应用,帮助用户快速掌握这款强大的仿真平台。从系统要求检查到多体动力学仿真,再到性能优化技巧,全面解析AFSim 2.9的使用方法,适合初学者和进阶用户参考。

weixin_30892037的博客 566

LeetCode289 生命游戏 Java实现

LeetCode289 题目 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡; 如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活; 如果活

BedivereAlter的博客 603

Spring AI Alibaba实战训练营-20 基于注解驱动的MCP快速开发入门指南

本文详细讲解如何使用SpringAiAlibaba快速开发基于注解驱动的MCP应用。文章详细介绍了MCP协议并且重点介绍了Spring AI通过注解驱动的开发方式简化MCP服务开发。具体包括服务端和客户端的注解使用、城市最新时间查询MCP项目结构概览(服务端和客户端模块)以及环境配置要求。

program哲学 295

BGP路由聚合:自动聚合和手动聚合

路由聚合是指将多条具体的路由合并为一条聚合路由,以减少路由表的条目数。这种技术通过只向对等体发送聚合后的路由,而不发送所有的具体路由,来减小路由表的规模。同时,被聚合的路由如果发生路由振荡,也不再对网络造成影响,从而提高了网络的稳定性。

网络技术联盟站 1220

leetcode-289:生命游戏

每个细胞都具有一个初始状态: 1 即为 活细胞 (live),或 0 即为 死细胞 (dead)。输入:board = [[0,1,0],[0,0,1],[1,1,1],[0,0,0]]输出:[[0,0,0],[1,0,1],[0,1,1],[0,1,0]]2.如果活细胞周围八个位置有两个或三个活细胞,则该位置活细胞仍然存活;1.如果活细胞周围八个位置的活细胞数少于两个,则该位置活细胞死亡;3.如果活细胞周围八个位置有超过三个活细胞,则该位置活细胞死亡;输出:[[1,1],[1,1]]

菊头蝙蝠的博客 1261

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

LeetCode第289题_生命游戏

LeetCode 289 生命游戏解题摘要 本题要求模拟细胞自动机的状态转换规则。核心思路是遍历每个细胞,统计其8个相邻细胞的活细胞数量,根据规则确定下一状态。提供了两种实现方案:原地修改法使用特殊标记(2和-1)记录中间状态,最后统一更新;额外空间法则创建新数组存储结果。文中给出C#、Python、C++三种实现,重点展示了原地算法的状态编码技巧。该题考察数组操作和状态转换能力,适合算法进阶练习。时间复杂度O(mn),空间复杂度O(1)(原地法)或O(mn)(额外空间法)。

qq_40263592的博客 1026

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

LeetCode 289. 生命游戏

生命游戏

予早随笔 693

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Leetcode—289. 生命游戏【中等】

Leetcode—289. 生命游戏【中等】

Atticus的博客 918

LeetCode-289.生命游戏

这里是题目描述:LeetCode-289.生命游戏 想要题目要求的答案并不难,难点在于如何在原地(即O(1)时间复杂度)情况下求解答案:不开辟新的数组,直接在原数组上对元素置0或置1会影响后续元素的计算。为了不造成这种干扰,我们可以先为元素赋0、1以外的其他值,后面再根据这些值将元素置0或置1 方法一:为数组元素赋其他值 我们遍历两遍原数组,第一遍遍历检查每个元素borad[i][j]周围的活细胞...

qq_24210431的博客 260

LeetCode 289.生命游戏问题

LeetCode-289.生命游戏生命游戏问题分析 生命游戏问题 根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果...

Liuk的博客 1108

LeetCode #289 生命游戏 位运算

LeetCode #289 生命游戏 题目描述 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1 即为活细胞(live),或 0 即为死细胞(dead)。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下四条生存定律: 如果活细...

阿玮的博客 316

LeetCode矩阵 289. 生命游戏

根据,简称为,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含m × n个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态:1即为(live),或0即为(dead)。下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的,其中细胞的出生和死亡是发生的。给你m x n网格面板board的当前状态,返回下一个状态。给定当前board的状态,board到下一个状态。你不需要返回任何东西。01。

2301_80072871的博客 485

Leetcode 289.生命游戏(Game of Life)

Leetcode 289.生命游戏 1 题目描述(Leetcode题目链接)   根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机。   给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞。每个细胞具有一个初始状态 live(1)即为活细胞, 或 dead(0)即为死细胞。每个细胞与其八个相邻位置(水平,垂直,对角线)的细胞都遵循以下...

qq_39378221的博客 464

【中等】力扣算法题解析LeetCode289:生命游戏

本文介绍了康威生命游戏的算法实现,通过在二维网格上模拟细胞演化规则。关键点包括: 规则应用:基于细胞周围活细胞数,决定其存活、死亡或复活; 原地算法:使用中间状态(-1表示死亡中,2表示复活中)避免状态冲突; 高效遍历:方向数组简化8邻域统计,两次遍历完成状态更新。 代码(Java)通过标记中间状态后统一转换,确保所有细胞同步更新。适用于有限网格,边界处理通过坐标检查实现。

ylumwd的博客 1005
上一篇: 1111 有效括号的嵌套深度
下一篇: 8 字符串转整数aoti
UnendingGlory
博客等级 码龄9年 55粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值