京東筆試程式設計題之方塊消除

2021-09-26 11:02:51 字數 1610 閱讀 1980

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 ...