京东网站建设的要求,电子商务营销写作实务,唐汉网站建设,网站建设的中期目标提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 目录
前言
一、题目-生命游戏
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
总结 前言
提示#xff1a;这里可以添加本文要记录的大概内容#xff1a;
4 月12日练习… 提示文章写完后目录可以自动生成如何生成可参考右边的帮助文档 目录
前言
一、题目-生命游戏
1.题目描述
2.思路与代码
2.1 思路
2.2 代码
总结 前言
提示这里可以添加本文要记录的大概内容
4 月12日练习内容 提示以下是本篇文章正文内容下面案例可供参考
一、题目-生命游戏
1.题目描述
根据 百度百科 生命游戏 简称为 生命 是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。
给定一个包含 m × n 个格子的面板每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态 1 即为 活细胞 live或 0 即为 死细胞 dead。每个细胞与其八个相邻位置水平垂直对角线的细胞都遵循以下四条生存定律
如果活细胞周围八个位置的活细胞数少于两个则该位置活细胞死亡 如果活细胞周围八个位置有两个或三个活细胞则该位置活细胞仍然存活 如果活细胞周围八个位置有超过三个活细胞则该位置活细胞死亡 如果死细胞周围正好有三个活细胞则该位置死细胞复活 下一个状态是通过将上述规则同时应用于当前状态下的每个细胞所形成的其中细胞的出生和死亡是同时发生的。给你 m x n 网格面板 board 的当前状态返回下一个状态。
示例 1 输入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 输入board [[1,1],[1,0]] 输出[[1,1],[1,1]] 来源力扣LeetCode 链接https://leetcode.cn/problems/game-of-life 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
2.思路与代码
2.1 思路
1.从原数组复制一份到 copyBoard 中
2.遍历面板每一个格子里的细胞
3.对于每一个细胞统计其八个相邻位置里的活细胞数量
4.查看相邻的细胞是否是活细胞
2.2 代码
代码如下示例
class Solution {public void gameOfLife(int[][] board) {int[] neighbors {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) {// 对于每一个细胞统计其八个相邻位置里的活细胞数量int liveNeighbors 0;for (int i 0; i 3; i) {for (int j 0; j 3; j) {if (!(neighbors[i] 0 neighbors[j] 0)) {int r (row neighbors[i]);int c (col neighbors[j]);// 查看相邻的细胞是否是活细胞if ((r rows r 0) (c cols c 0) (copyBoard[r][c] 1)) {liveNeighbors 1;}}}}// 规则 1 或规则 3 if ((copyBoard[row][col] 1) (liveNeighbors 2 || liveNeighbors 3)) {board[row][col] 0;}// 规则 4if (copyBoard[row][col] 0 liveNeighbors 3) {board[row][col] 1;}}}}
} 总结
提示这里对文章进行总结