如果活細胞周圍八個位置的活細胞數少於兩個,則該位置活細胞死亡;
如果活細胞周圍八個位置有兩個或三個活細胞,則該位置活細胞仍然存活;
如果活細胞周圍八個位置有超過三個活細胞,則該位置活細胞死亡;
如果死細胞周圍正好有三個活細胞,則該位置死細胞復活;
根據當前狀態,寫乙個函式來計算面板上所有細胞的下乙個(一次更新後的)狀態。下乙個狀態是通過將上述規則同時應用於當前狀態下的每個細胞所形成的,其中細胞的出生和死亡是同時發生的。
輸入示範:讀完題目,發現題目的思路很清晰,我們所需要做的事情是:[[0,1,0],
[0,0,1],
[1,1,1],
[0,0,0]
]輸出示範:
[[0,0,0],
[1,0,1],
[0,1,1],
[0,1,0]
]
不過需要注意的是:
要解決這個問題,我們有兩個思路:
這裡描述一下原地修改時賦予的新含義:
最後再還原成用01表示的狀態即可。
class
solution
;int x=board.length;
int y=board[0]
.length;
int[
] copy=
newint
[x][y]
;int x,y,i,j;
for(x=
0;xfor(x=
0;xif(copy[x]
[y]==1&&
(num<
2||num>3)
)if(copy[x]
[y]==
0&&num==3)
}}return;}
}
class
solution
;int x=board.length;
int y=board[0]
.length;
int x,y,i,j;
for(x=
0;xif(board[x]
[y]==1&&
(num<
2||num>3)
)if(board[x]
[y]==
0&&num==3)
}}for(x=
0;xreturn;}
}
leetcode-4.2每日一題打卡完畢!
atfwus --writing by 2020–04-02
LeetCode 289 生命遊戲 (狀態同步)
這裡不能直接加board x y 因為 board x y 的倒數第二位是可能有值的。cnt board x y 1 if board i j 1 0 周圍活細胞過多或過少都會死,因為原資料是0b01,所以這裡不用額外賦值。else if cnt 3 最後一位去掉,倒數第二位變為更新後的狀態。for...
附加作業 黃金點遊戲
github鏈結 這次作業我主要負責演算法的編寫和介面設計,傑麟主要負責程式的測試和完善 本次作業相對比較容易實現,關鍵在於互動的方式要足夠友好,也就是要讓人感覺確實是在玩乙個遊戲,而不是在跑乙個程式,這是比較費時間的事情。另外,的優化也必不可少,特別是對演算法的改進,初始化 引數更新模組的優化等。...
生命遊戲 ,VB
出差 累死,還用vb 做,還 這點公尺,無聊,寫個小東西 生命遊戲 本世紀70年代,人們曾瘋魔一種被稱作 生命遊戲 的小遊戲,這種遊戲相當簡單。假設有乙個像棋盤一樣的方格網,每個方格中放置乙個生命細胞,生命細胞只有兩種狀態 生 或 死 遊戲規則如下 1 如果乙個細胞周圍有3個細胞為生 乙個細胞周圍共...