演算法面試題 牛客網陣列變換

2022-03-29 03:37:41 字數 887 閱讀 6890

題目:

解析:首先簡單的情況是,兩個數,判斷能否通過題目中的規則,每次乘以2,最後能否相等,這個問題其實很簡單,設兩個數為a和b,則有:

a*2n=b*2m

化簡後得到:

a/b=2m-n

求對數:

log2(a/b)=m-n

當條件成立時,n和m均為正數,也就是m-n也為整數。

當陣列中有多於兩個數時,要判斷整個陣列是否符合,只需要判斷相鄰兩個數是否符合規則即可,也就是只需要遍歷一次,從兩個數遷移到多個數的情況是一樣的。

**:

1

import

math23

4def

log2(num):

5return math.log(num, 2)67

8def

isint(n):

9return n - int(n) ==0

1011

12while

true:

13try

:14 n =int(raw_input())

15 ns = map(float, raw_input().split(''))

16for i in range(n-1):

17if

not isint(log2(ns[i] / ns[i+1])):

18print'no

'19break

20else:21

print

'yes'22

except

eoferror:

23break

牛客網(面試題)

每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮...

跳台階 牛客網面試題

乙隻青蛙一次可以跳上1級台階,也可以跳上2級。求該青蛙跳上乙個n級的台階總共有多少種跳法 先後次序不同算不同的結果 當每次只跳一級台階時,只有一種情況 當每次只跳兩級台階時,也是只有一種情況 當又跳一級台階又跳兩級台階時,我們可以假設第一步跳一級台階,那麼後面的所有的跳法為f n 1 當第一步跳兩級...

c 華為面試題 牛客網 3 0

越做越覺得非科班出身的艱難。要不還是老老實實畫圖去?好吧 再來一題 給出乙個名字,該名字有26個字串組成,定義這個字串的 漂亮度 是其所有字母 漂亮度 的總和。每個字母都有乙個 漂亮度 範圍在1到26之間。沒有任何兩個字母擁有相同的 漂亮度 字母忽略大小寫。給出多個名字,計算每個名字最大可能的 漂亮...