首页 > 其他 > 详细

LeetCode "Game of Life"

时间:2015-10-04 11:04:52      阅读:843      评论:0      收藏:0      [点我收藏+]

A coding practice.

技术分享
class Solution {
public:
    // encoding: 2 - 1 to 0; -1 - 0 to live
    void gameOfLife(vector<vector<int>>& board) {
        int h = board.size();
        int w = board[0].size();
        
        //  Pass 1
        for(int y = 0; y < h; y ++)
        for(int x = 0; x < w; x ++)
        {
            int cnt = 0;
            for(int dx = -1; dx < 2; dx ++)
            for(int dy = -1; dy < 2; dy ++)
            {
                int xx = x + dx, yy = y + dy;
                if (xx >=0 && xx < w && yy >= 0 && yy < h && !(xx==x && yy == y))
                {
                    cnt += board[yy][xx] > 0;
                }
            }
            
            if(board[y][x])
            {
                if (!(cnt == 2 || cnt == 3))
                {
                    board[y][x] = 2;
                }
            }
            else
            {
                if(cnt == 3)    board[y][x] = -1;
            }
        }
        
        //  Pass 2
        for(int y = 0; y < h; y ++)
        for(int x = 0; x < w; x ++)
        {
            if (board[y][x] == 2) board[y][x] = 0;
            else if (board[y][x] == -1) board[y][x] = 1;
        }
        
    }
};
View Code

LeetCode "Game of Life"

原文:http://www.cnblogs.com/tonix/p/4854213.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!