码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode-289

时间:2020-04-03 00:35:56      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:其他   make   需要   i++   board   tor   问题   etc   cas   

主要的问题是我们需要用上一个状态来判断当前状态。因为可能因为你变1之后影响其他的。

 

Perhaps that’s been the story of life

 

func gameOfLife(board [][]int) {
    temp := make([][]int, len(board))
    for i := 0; i < len(board); i++ {
        temp[i] = make([]int, len(board[i]))
    }
    for i := 0; i < len(board); i++ {
        for j := 0; j < len(board[0]); j++ {
            nums := 0
            // 上面
            if i - 1 >= 0 {
                nums += board[i-1][j]
            }
            // 左面
            if j - 1 >= 0 {
                nums += board[i][j-1]
            }
            // 下面
            if i + 1 < len(board) {
                nums += board[i+1][j]
            }
            // 右面
            if j + 1 < len(board[i]) {
                nums += board[i][j+1]
            }
            // 左上
            if i - 1 >= 0 && j - 1 >= 0 {
                nums += board[i-1][j-1]
            }
            // 右上
            if i - 1 >= 0 && j + 1 < len(board[i]) {
                nums += board[i-1][j+1]
            }
            // 左下
            if i + 1 < len(board) && j - 1 >= 0  {
                nums += board[i+1][j-1]
            }
            // 右下
            if j + 1 < len(board[i]) && i + 1 < len(board) {
                nums += board[i+1][j+1]
            }
            temp[i][j] = board[i][j]
            switch {
            case nums < 2:
                temp[i][j] = 0
            case nums == 3 && temp[i][j] == 0:
                temp[i][j] = 1
            case nums > 3:
                temp[i][j] = 0
            }
        }
    }
    copy(board, temp)
}

 

end

leetcode-289

标签:其他   make   需要   i++   board   tor   问题   etc   cas   

原文地址:https://www.cnblogs.com/CherryTab/p/12623951.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!