题解
不给额外空间该怎么做呢?那就往原来空间里挤一挤。
显然,原来矩阵只存储了0-1,用了1位而已,把变化的信息存入第二位就好了。
Code
void gameOfLife(vectorvectorint board) {
if(board.empty()) return;
int n=board.size(),m=board[0].size();
int live;
for(int i=0;in;i++){
for(int j=0;jm;j++){
live=0;
for(int k=max(i-1,0);k=min(i+1,n-1);k++){
for(int t=max(j-1,0);t=min(j+1,m-1);t++){
if(k==it==j) continue;
live+=board[k][t]1;
}
}
if(live==3 || (live==2 board[i][j]==1))
board[i][j] |= 2;
}
}
for(int i=0;in;i++)
for(int j=0;jm;j++)
board[i][j]=1;
}