289. 生命游戏
思路:数每个格子周围Cell存活数
笔记:vector复制 vector<vector<int> > tmp(board);
class Solution {
public:
void gameOfLife(vector<vector<int>>& board) {
vector<vector<int> > tmp(board);
row=board.size(), col=board[0].size();
for(int i=0;i<row;i++){
for(int j=0;j<col;j++){
int count = count_life(tmp, i, j);
if(board[i][j]==1 && (count<2 || count>3)){
board[i][j]=0;
}
if(board[i][j]==0 && count==3)
board[i][j]=1;
}
}
}
private:
int row, col;
int count_life(vector<vector<int>>& tmp, int x, int y){
int count = 0;
for(int i=-1;i<=1;i++){
for(int j=-1;j<=1;j++){
if(i==0 && j==0) continue;
if(x+i>=0 && x+i<row && y+j>=0 && y+j<col && tmp[x+i][y+j]==1){
count++;
}
}
}
return count;
}
};