点击打开链接
class Solution {
public:
int getNeighbor(vector<vector<int>>& board, int rows, int colums, int x, int y)
{
int sum=0;
for(int i=x-1;i<x+2;i++){
for(int j=y-1; j<y+2; j++){
if(i==x&&j==y){
continue;
}
if(i>=0&&i<rows&&j>=0&&j<colums&&(board[i][j]==1 || board[i][j]==2)){
sum +=1;
}
}
}
return sum;
}
void gameOfLife(vector<vector<int>>& board) {
if(board.size()==0 || board[0].size()==0) return;
int rows =board.size(), colums = board[0].size();
int i=0, j=0;
for(i=0;i<rows;i++){
for(j=0;j<colums;j++){
int sum = getNeighbor(board, rows, colums, i, j);
if(sum==2) continue;
else if(sum==3) board[i][j]=board[i][j]==0?3:1;
else board[i][j]=board[i][j]==1?2:0;
}
}
for(i=0;i<rows;i++){
for(j=0;j<colums;j++){
board[i][j] %=2;
}
}
}
};