Game of Life
来源:互联网 发布:iphone6网络连接不上 编辑:程序博客网 时间:2024/06/05 16:21
对于这种题,真要遇上了就认命了。参考点击打开链接,后续的问答,继续关注。
这道题,
关键在于能想到,状态转变
0 : 上一轮是0,这一轮过后还是01 : 上一轮是1,这一轮过后还是12 : 上一轮是1,这一轮过后变为03 : 上一轮是0,这一轮过后变为1
另外,每次比较都是和上一轮状态的比较。还有,这样写,不是自己想要的结果:
//lives = lives + board[i - 1][j] == 1 || board[i - 1][j] == 2 ? 1 : 0;要么分开,要么这样写:
lives += board[i - 1][j] == 1 || board[i - 1][j] == 2 ? 1 : 0;
public class Solution { public void gameOfLife(int[][] board) { int m = board.length, n = board[0].length; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { int lives = 0; //up if (i > 0) { //lives = lives + board[i - 1][j] == 1 || board[i - 1][j] == 2 ? 1 : 0; lives += board[i - 1][j] == 1 || board[i - 1][j] == 2 ? 1 : 0; } // up right if (i > 0 && j + 1 < n) { lives += board[i - 1][j + 1] == 1 || board[i - 1][j + 1] == 2 ? 1 : 0; } // right if (j + 1 < n) { lives += board[i][j + 1] == 1 || board[i][j + 1] == 2 ? 1 : 0; } // down right if (i + 1 < m && j + 1 < n) { lives += board[i + 1][j + 1] == 1 || board[i + 1][j + 1] == 2 ? 1 : 0; } // down if (i + 1 < m) { lives += board[i + 1][j] == 1 || board[i + 1][j] == 2 ? 1 : 0; } // down left if (i + 1 < m && j > 0) { lives += board[i + 1][j - 1] == 1 || board[i + 1][j - 1] == 2 ? 1 : 0; } // left if (j > 0) { lives += board[i][j - 1] == 1 || board[i][j - 1] == 2 ? 1 : 0; } // up left if (i > 0 && j > 0) { lives += board[i - 1][j - 1] == 1 || board[i - 1][j - 1] == 2 ? 1 : 0; } if (board[i][j] == 1 && (lives < 2 || lives > 3)) { board[i][j] = 2; } else if (board[i][j] == 0 && lives == 3) { board[i][j] = 3; } } } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { //board[i][j] = board[i][j] % 2 == 0 ? 0: 1; board[i][j] = board[i][j] % 2; } } }}
0 0
- Game of Life
- Game Of Life
- LeetCode:Game of Life
- LeetCode: Game of Life
- Game of Life
- leetcode289 : Game of Life
- 【LeetCode】Game of Life
- Game of Life
- Game of Life
- LeetCode Game of Life
- Leetcode Game of Life
- Game of Life
- Game of Life
- [289]Game of Life
- [LeetCode] Game of Life
- Game Of Life
- LeetCode -- Game of Life
- 【leetcode】Game of Life
- Ubantu 配置Samba实现文件共享
- Builder模式详解--设计模式(5)
- OpenGLES—法线贴图
- 线性表之顺序表
- 内部类
- Game of Life
- Cenos7 下安装redis 和操作redis
- MATLAB常用的快捷键
- js交互
- Android学习参考资料汇总
- AOP详解(1)
- mysql 字段避免赋值为0
- PorterDuffXfermode的用法
- Unity中炮弹抛物线运动