public class Solution {
int m;
int n;
public void gameOfLife(int[][] board) {
m=board.length;
n=board[0].length;
int[][]board2=new int[m][n];
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
board2[i][j]=board[i][j];
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
int nextState=board2[i][j];
int nibercount=getNiberCount(board2, i, j);
if(nibercount<2)
{
nextState=0;
}
if(nibercount==3)
{
nextState=1;
}
if(nibercount>3)
{
nextState=0;
}
board[i][j]=nextState;
}
}
}
public int getNiberCount(int[][]board2,int x,int y)
{
int startx=Math.max(0, x-1);
int endx=Math.min(m-1, x+1);
int starty=Math.max(0, y-1);
int endy=Math.min(n-1, y+1);
int count=0;
for(int i=startx;i<=endx;i++)
{
for(int j=starty;j<=endy;j++)
{
if(board2[i][j]==1)
{
count++;
}
}
}
return count-=board2[x][y];
}
}
leetcode Game of Life
最新推荐文章于 2024-01-22 12:49:47 发布
本文介绍了一个基于Java的生命游戏算法实现。该算法通过计算每个细胞周围的活细胞数量来确定其下一个状态,实现了生命游戏的基本规则。文章详细展示了如何使用二维数组记录当前代的状态,并通过遍历周围邻居来更新每个细胞的状态。
4689

被折叠的 条评论
为什么被折叠?



