5x5矩陣三三消除
(無重力解決方案)
input
4 52 2 3 1 2
3 1 1 1 1
2 3 2 1 3
2 2 3 3 3
output
2 2 3 0 2
3 0 0 0 0
2 3 2 0 3
2 2 0 0 0
n,m =
[int
(x)for x in
input()
.split()]
# 將n,m 轉換為 int 型別
checkerboard=
falg_list=[[
0]*m for i in
range
(n)]
# 建立乙個n行 m列的列表,初始值為 0
for i in
range
(n):
temp =
input()
.split(
)for i in
range
(n):
for j in
range
(m):
# 檢查 每一列 是否有可以消除的,有的話,就設定 falg_list[i][j] 的值為 1
if i+
12if checkerboard[i]
[j]== checkerboard[i+1]
[j]and checkerboard[i]
[j]== checkerboard[i+2]
[j]:
falg_list[i]
[j]=
1 falg_list[i+1]
[j]=
1
falg_list[i+2]
[j]=
1# 檢查 每一行 是否有可以消除的,有的話,就設定 falg_list[i][j] 的值為 1
if j+
12if checkerboard[i]
[j]== checkerboard[i]
[j+1
]and checkerboard[i]
[j]== checkerboard[i]
[j+2]:
falg_list[i]
[j]=
1 falg_list[i]
[j+1]=
1
falg_list[i]
[j+2]=
1# 列印消除後的棋盤
for i in
range
(n):
for j in
range
(m):
# falg_list[i][j] 的值為 1 ,說明棋盤中的數字已被消除
if falg_list[i]
[j]==1:
checkerboard[i]
[j]=
0print
(checkerboard[i]
[j],end=
' ')
print
()
京東筆試程式設計題之消消樂
題目 有乙個5 5的正方形網格,沒個格仔中有乙個大於0且小於4的整數,對於乙個確定的局面,若乙個格仔與它上下左右四個方向的某個格仔 如果存在 數字相同,則稱這兩個格仔是連通的,並且這種連通具有傳遞性。每次,可以選擇乙個格仔,若與這個格仔連通的格仔 包括自己 數大於等於3,你就可以選擇消掉這個格仔,與...
京東筆試程式設計題。。消消樂
題目是 輸入5 5的矩陣,數值大小為1 5,上下左右相同的數值達到3個或以上可消除,每次都消除可消除的最大的那個區域,消除後的剩餘數值?由重力作用向下移動,求按此規則消除,直到無法消除時,剩餘未消除數值的個數。例如 31211 第一次 xx xx xx 3x2xx 3x223 第二次 xx xx x...
京東2015校招筆試程式設計題
醜數問題,在 劍指offer 一書的182頁有詳細討論。簡單來說,就是 新的醜數總是以前的某個醜數乘以2 3或5產生,那麼分別用三個指標p2 p3和p5指向乘以2 3和5後能生成新的醜數的醜數,那麼下乙個醜數就是它們生成的新的醜數中最小的乙個。public static int kthnumber ...