leetcode 289. Game of Life | 289. 生命游戏(Java)
题目
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)相关推荐
- LeetCode 289 Game of Life(生命游戏)(Array)
翻译 根据维基百科的文章介绍:"Game of Life,简称为Life,是一个被英国数学家John Conway在1970年提出的细胞自动分裂器." 给定一个m x n的空间,每 ...
- 实用---生命游戏 Java
本程序由四个类组成: 其中Init_data,用于初始化各个活细胞的状态judge_state,用于判断下一代的细胞状态,并进行更新.set_color,用于给GUI界面中各个细胞涂色set_fram ...
- 生命游戏(Java版)
游戏简介 生命游戏(game of life)为1970年由英国数学家J. H. Conway所提出 某细胞的邻居包括上.下.左.右.左上.左下.右上与右下相邻之细胞 游戏规则如下: 孤单死亡 如果细 ...
- 生命游戏Java实现
关于生命游戏 之前在学校看到ThoughtWorks举办的线下结对编程的比赛一等奖是大疆无人机,冲着无人机就拉着实验室小伙伴马总一起报了个名.然后题目就是实现一个界面版的生命游戏,所以才了解了生命游戏 ...
- java生命游戏_实用---生命游戏 Java
1 /*****************2 * 构建窗口类3 * 菜单choice(控制):1.开始 2.继续 3.结束4 * 菜单pattern(模式):1.easy 2.love型 3.arrow ...
- Java案例:Java版生命游戏
目录 一.生命游戏 1.生命游戏概述 2.生命演化规则:B3/S23 二.生命游戏Java实现
- LeetCode 289. 生命游戏(位运算)
文章目录 1. 题目 2. 解题 2.1 复制数组解法 2.2 原地解法 2.3 位运算 1. 题目 链接:289. 生命游戏 2. 解题 2.1 复制数组解法 很简单,按照题意模拟即可 class ...
- LeetCode 289. 生命游戏
289. 生命游戏 思路:数每个格子周围Cell存活数 笔记:vector复制 vector<vector<int> > tmp(board); class Solution ...
- 【leetcode】289.生命游戏 (三种解法开阔思路,java实现)
289. 生命游戏 难度中等 根据 百度百科 ,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个 ...
- Leetcode 289:生命游戏(最详细的解法!!!)
根据百度百科,生命游戏,简称为生命,是英国数学家约翰·何顿·康威在1970年发明的细胞自动机. 给定一个包含 m × n 个格子的面板,每一个格子都可以看成是一个细胞.每个细胞具有一个初始状态 liv ...
最新文章
- 6位图灵奖得主,10多位院士,19个分论坛:北京智源大会邀你共同探索AI下一个十年...
- go where 不等于_go基础之map迭代(四)
- 3.10 候选区域-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外
- 投资学习网课笔记(part3)--基金第三课
- 机器视觉:光源专业词汇中英文详解
- 全国计算机一级模拟考试电脑版,全国计算机等级考试一级计算机基础及MS Office应用模拟练习系统...
- 深入原理64式:39 线性代数公式总结
- STAMP可以用在win10上面吗
- WPS删除一整页操作,简历中删除不了空白页的操作
- Laravel文档梳理3、CSRF保护
- Android 4.4 PM机制系列(四) APK安装需要空间分析
- Android 10.0 webview版本升级的方法
- Win10以太网网络电缆被拔出怎么解决
- 世界十大高楼中国占6座 中东要建第一楼
- 补天发动 3万多名白帽子找漏洞情报,这次有什么不一样
- Hi3531 平台开发,Hi3532 平台开发
- 终端定制行业分销初步设计
- 【C#】加加和减减、复合赋值运算符、一元二元运算符、关系运算符、bool类型
- python-外部程序的调用os库、subprocess 模块
热门文章
- HDU - 2896 病毒侵袭(AC自动机)
- CodeForces - 123A prime permutation(并查集,水题)
- POJ - 3074 Sudoku(DLX)
- HDU - 5475 An easy problem(线段树)
- UVa11853 Paintball
- 【数据结构】KMP算法(c语言)
- PostgreSQL学习笔记5之函数和操作符一
- 排序算法——插入排序
- 使用LeakTracer检测android NDK C/C++代码中的memory leak
- Socket之TCP服务器【Python】