1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
class Solution { public: void gameOfLife(vector<vector<int>>& board) { int m = board.size(), n = board[0].size(); int dx[] = {-1,-1,-1,0,0,1,1,1}; int dy[] = {-1,0,1,-1,1,-1,0,1}; for(int i = 0; i < board.size(); i++) { for(int j = 0; j < board[0].size(); j++) { int cnt = 0; for(int k = 0; k < 8; k++) { if(i+dx[k] >= 0 && i+dx[k] < m && j + dy[k] >= 0 && j+dy[k] < n && (board[i+dx[k]][j+dy[k]] == 1 ||board[i+dx[k]][j+dy[k]] == 2)) cnt++; } if(board[i][j] && (cnt < 2 || cnt >3)) board[i][j] = 2; else if(!board[i][j] && cnt == 3) board[i][j] = 3; } } for(int i = 0; i < board.size(); i++) { for(int j = 0; j < board[0].size(); j++) { board[i][j] = board[i][j] % 2; } } } };
|
近期评论