关闭

leetcode Game of Life

93人阅读 评论(0) 收藏 举报
分类:

题目链接

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];
    }
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:74212次
    • 积分:3815
    • 等级:
    • 排名:第8687名
    • 原创:319篇
    • 转载:26篇
    • 译文:0篇
    • 评论:3条
    最新评论