LeetCode 289. Game of Life

题解

不给额外空间该怎么做呢?那就往原来空间里挤一挤。
显然,原来矩阵只存储了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;// 1 bit pos
                    }
                }
                if(live==3 || (live==2  board[i][j]==1))
                    board[i][j] |= 2;// 2 bit pos
            }
        }
         for(int i=0;in;i++)
            for(int j=0;jm;j++)
                board[i][j]=1;     
    }
最新回复(0)
/jishuBwxpwtTRixYeI4PCdEXBszzPciO3uiDXdhhTyQ_3D_3D4858365
8 简首页