Game of Life
给一个2d数组, 每个格表示一些东西https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life 返回下一个状态的2d. 就是简单的dfs,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
public class Solution { public void gameOfLife(int[][] board) { if(board == null) return; int m = board.length; int n = board[0].length; for(int i = 0 ; i < m ; i++) { for(int j = 0 ; j < n; j++) { check(board,i,j,i+1,j-1); check(board,i,j,i+1,j); check(board,i,j,i+1,j+1); check(board,i,j,i,j+1); if(board[i][j]>=5 && board[i][j]<=7) board[i][j]=1; else board[i][j]=0; } } } public void check(int[][] board, int i , int j , int a, int b) { int m = board.length; int n = board[0].length; if(a >= m || b < 0 || b>=n) return; if(board[i][j] % 2 != 0) board[a][b] += 2; if(board[a][b] % 2 != 0) board[i][j] += 2; } } |