位元組跳動第二次筆試

2021-09-26 12:02:04 字數 3535 閱讀 9920

1 和leetcode547很像,一開始可以先把滿足》3的變成1,然後就轉換成leetcode547了

2

def

getres

(n):

f=[0

]*(n+1

) f[0]

=1for i in

range(1

,n+1):

for j in

range

(i):

f[i]

+=f[j]

*f[i-

1-j]

return f

print getres(n//

2)

def

slide

(data,choice)

:if choice==2:

#down

for lie in

range(4

):times=

3for hang in

range(3

,-1,

-1):

if data[hang]

[lie]

: data[times]

[lie]

=data[hang]

[lie]

if hangdata[hang]

[lie]=0

times-=

1if choice==1:

#upfor lie in

range(4

):times=

0for hang in

range(4

):if data[hang]

[lie]

: data[times]

[lie]

= data[hang]

[lie]

if hang > times:

data[hang]

[lie]=0

times +=

1if choice==3:

#left

for hang in

range(4

):times=

0for lie in

range(4

):if data[hang]

[lie]

: data[hang]

[times]

= data[hang]

[lie]

if lie > times:

data[hang]

[lie]=0

times +=

1if choice==4:

for hang in

range(4

):times=

3for lie in

range(3

,-1,

-1):

if data[hang]

[lie]

: data[hang]

[times]

= data[hang]

[lie]

if lie < times:

data[hang]

[lie]=0

times -=

1return data

# data=[[0,0,2,2],[0,0,0,2],[0,0,4,8],[0,0,4,8]]

defgetres

(data,choice)

: data = slide(data,choice)

if choice==2:

for lie in

range(4

):for hang in

range(3

,0,-

1):if data[hang]

[lie]

==data[hang-1]

[lie]

: data[hang]

[lie]

=data[hang]

[lie]*2

data[hang-1]

[lie]=0

if choice==1:

for lie in

range(4

):for hang in

range(3

):if data[hang]

[lie]

==data[hang+1]

[lie]

: data[hang]

[lie]

= data[hang]

[lie]*2

data[hang +1]

[lie]=0

if choice==3:

for hang in

range(4

):for lie in

range(3

):if data[hang]

[lie]

==data[hang]

[lie+1]

: data[hang]

[lie]

=data[hang]

[lie]*2

data[hang]

[lie+1]

=0if choice==4:

for hang in

range(4

):for lie in

range(3

,0,-

1):if data[hang]

[lie]

==data[hang]

[lie-1]

: data[hang]

[lie]

=data[hang]

[lie]*2

data[hang]

[lie-1]

=0res=slide(data,choice)

return res

import sys

if __name__ ==

"__main__"

:# 讀取第一行的n

n =int(sys.stdin.readline(

).strip())

ans =

0 res=

for i in

range(4

):# 讀取每一行

line = sys.stdin.readline(

).strip(

)# 把每一行的數字分隔後轉化成int列表

values =

list

(map

(int

, line.split())

) result=getres(res,n)

for line in result:

print

(' '

.join(

map(

str,line)

))

第四題超時了,等大佬

位元組第二次筆試題目

因為7月4號的筆試時間記錯了,遲了40分鐘,只ac了前面兩題,應該沒過 7月11號守著電腦來做的,ac了三道題,不知道能不能給機會面試,宇宙條太狠了 1.動態規劃問題 幾個人排隊,找出這個位置的人前面最近的身高高於他的人的身高 2.入棧,出棧的序列是否合法 通過乙個輔助棧吧,leetcode上面的劍...

2019 9 1騰訊第二次筆試

第三題 有n個人,每個人有兩個值ai,bi,第i個人的不滿意度為站在他前面的人的個數乘以ai 加上站在他後面的人的個數乘以bi。0 每個人的下標 n 1 給他們排好序,value i i a i n 1 i b i,使得所有value i相加最小是多少 第四題 種白花和紅花,白花必須有k的倍數個相連...

《位元組跳動》筆試第二題

題目 輸入 第一行輸入乙個數n,表示下邊有幾行。接下來輸入n行,每一行格式為1,2 3,4 5,6.輸出 將重疊部分進行合併的結果,按從小到大輸出。例如 python實現 import sys if name main n input q for i in range n line sys.stdi...