class Solution {
public:
void gameOfLife(vector<vector<int>>& board) {
vector<vector<int>> result;
for(int i=0;i<board.size();i++){
vector<int> temp; //暂存一行
for(int j=0;j<board[i].size();j++){
if(board[i][j]==1){
int count=-1;
for(int m=0;m<3;m++){
for(int n=0;n<3;n++){
//计算活细胞的个数时要注意vector不要越界
if(i-1+m>=0 && i-1+m<board.size() && j-1+n>=0 && j-1+n<board[i].size() && board[i-1+m][j-1+n]==1){
count++;
}
}
}
if(count<2||count>3){
temp.push_back(0);
}
else{
temp.push_back(1);
}
}
else{
int count=0;
for(int m=0;m<3;m++){
for(int n=0;n<3;n++){
if(i-1+m>=0 && i-1+m<board.size() && j-1+n>=0 && j-1+n<board[i].size() && board[i-1+m][j-1+n]==1){
count++;
}
}
}
if(count==3){
temp.push_back(1);
}
else{
temp.push_back(0);
}
}
}
result.push_back(temp);
}
for(int i=0;i<result.size();i++){
for(int j=0;j<result[i].size();j++){
board[i][j]=result[i][j];
}
}
}
};