题目

https://leetcode.com/problems/game-of-life/

题解

首先,遍历整个棋盘,如果是 1,就将上下左右的 count 值加 1。

然后,没有任何技巧,就是根据 count 值,拆 if-else。

如果要原地操作的话,可以使用位运算,一个 int 有 32 bit,输入数据只用了一个 bit,所以我们可以利用其他空闲的bit位进行“原地修改”。本文不再详述,可参考:https://leetcode-cn.com/problems/game-of-life/solution/c-wei-yun-suan-yuan-di-cao-zuo-ji-bai-shuang-bai-b/

class Solution {public void gameOfLife(int[][] board) {int M = board.length;int N = board[0].length;int[][] cnt = new int[M][N];for (int i = 0; i < M; i++) {for (int j = 0; j < N; j++) {if (board[i][j] == 1) {if (i > 0) cnt[i - 1][j]++;if (j > 0) cnt[i][j - 1]++;if (i > 0 && j > 0) cnt[i - 1][j - 1]++;if (i < M - 1) cnt[i + 1][j]++;if (j < N - 1) cnt[i][j + 1]++;if (i < M - 1 && j < N - 1) cnt[i + 1][j + 1]++;if (i < M - 1 && j > 0) cnt[i + 1][j - 1]++;if (i > 0 && j < N - 1) cnt[i - 1][j + 1]++;}}}for (int i = 0; i < M; i++) {for (int j = 0; j < N; j++) {if (board[i][j] == 1 && cnt[i][j] < 2 || cnt[i][j] > 3) board[i][j] = 0;if (board[i][j] == 0 && cnt[i][j] == 3) board[i][j] = 1;}}}
}

leetcode 289. Game of Life | 289. 生命游戏(Java)相关推荐

  1. LeetCode 289 Game of Life(生命游戏)(Array)

    翻译 根据维基百科的文章介绍:"Game of Life,简称为Life,是一个被英国数学家John Conway在1970年提出的细胞自动分裂器." 给定一个m x n的空间,每 ...

  2. 实用---生命游戏 Java

    本程序由四个类组成: 其中Init_data,用于初始化各个活细胞的状态judge_state,用于判断下一代的细胞状态,并进行更新.set_color,用于给GUI界面中各个细胞涂色set_fram ...

  3. 生命游戏(Java版)

    游戏简介 生命游戏(game of life)为1970年由英国数学家J. H. Conway所提出 某细胞的邻居包括上.下.左.右.左上.左下.右上与右下相邻之细胞 游戏规则如下: 孤单死亡 如果细 ...

  4. 生命游戏Java实现

    关于生命游戏 之前在学校看到ThoughtWorks举办的线下结对编程的比赛一等奖是大疆无人机,冲着无人机就拉着实验室小伙伴马总一起报了个名.然后题目就是实现一个界面版的生命游戏,所以才了解了生命游戏 ...

  5. java生命游戏_实用---生命游戏 Java

    1 /*****************2 * 构建窗口类3 * 菜单choice(控制):1.开始 2.继续 3.结束4 * 菜单pattern(模式):1.easy 2.love型 3.arrow ...

  6. Java案例:Java版生命游戏

    目录 一.生命游戏 1.生命游戏概述 2.生命演化规则:B3/S23 二.生命游戏Java实现

  7. LeetCode 289. 生命游戏(位运算)

    文章目录 1. 题目 2. 解题 2.1 复制数组解法 2.2 原地解法 2.3 位运算 1. 题目 链接:289. 生命游戏 2. 解题 2.1 复制数组解法 很简单,按照题意模拟即可 class ...

  8. LeetCode 289. 生命游戏

    289. 生命游戏 思路:数每个格子周围Cell存活数 笔记:vector复制 vector<vector<int> > tmp(board); class Solution ...

  9. 【leetcode】289.生命游戏 (三种解法开阔思路,java实现)

    289. 生命游戏 难度中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个 ...

  10. Leetcode 289:生命游戏(最详细的解法!!!)

    根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞具有一个初始状态 liv ...

最新文章

  1. 6位图灵奖得主,10多位院士,19个分论坛:北京智源大会邀你共同探索AI下一个十年...
  2. go where 不等于_go基础之map迭代(四)
  3. 3.10 候选区域-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  4. Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外
  5. 投资学习网课笔记(part3)--基金第三课
  6. 机器视觉:光源专业词汇中英文详解
  7. 全国计算机一级模拟考试电脑版,全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统...
  8. 深入原理64式:39 线性代数公式总结
  9. STAMP可以用在win10上面吗
  10. WPS删除一整页操作,简历中删除不了空白页的操作
  11. Laravel文档梳理3、CSRF保护
  12. Android 4.4 PM机制系列(四) APK安装需要空间分析
  13. Android 10.0 webview版本升级的方法
  14. Win10以太网网络电缆被拔出怎么解决
  15. 世界十大高楼中国占6座 中东要建第一楼
  16. 补天发动 3万多名白帽子找漏洞情报,这次有什么不一样
  17. Hi3531 平台开发,Hi3532 平台开发
  18. 终端定制行业分销初步设计
  19. 【C#】加加和减减、复合赋值运算符、一元二元运算符、关系运算符、bool类型
  20. python-外部程序的调用os库、subprocess 模块

热门文章

  1. HDU - 2896 病毒侵袭(AC自动机)
  2. CodeForces - 123A prime permutation(并查集,水题)
  3. POJ - 3074 Sudoku(DLX)
  4. HDU - 5475 An easy problem(线段树)
  5. UVa11853 Paintball
  6. 【数据结构】KMP算法(c语言)
  7. PostgreSQL学习笔记5之函数和操作符一
  8. 排序算法——插入排序
  9. 使用LeakTracer检测android NDK C/C++代码中的memory leak
  10. Socket之TCP服务器【Python】