四道微軟面試演算法題

2021-04-20 21:02:55 字數 605 閱讀 3549

朋友去ms面試,我從他口裡探到幾道程式設計面試題。特來和各位分享。

(1)

乙個整數數列,元素取值可能是0~65535中的任意乙個數,相同數值不會重複出現。0是例外,可以反覆出現。

請設計乙個演算法,當你從該數列中隨意選取5個數值,判斷這5個數值是否連續相鄰。

注意:

- 5個數值允許是亂序的。比如: 8 7 5 0 6

- 0可以通配任意數值。比如:8 7 5 0 6 中的0可以通配成9或者4

- 0可以多次出現。

- 複雜度如果是o(n2)則不得分。

(2)

設計乙個演算法,找出二叉樹上任意兩個結點的最近共同父結點。

複雜度如果是o(n2)則不得分。

(3)

一棵排序二叉樹,令 f=(最大值+最小值)/2,設計乙個演算法,找出距離f值最近、大於f值的結點。

複雜度如果是o(n2)則不得分。

(4)

乙個整數數列,元素取值可能是1~n(n是乙個較大的正整數)中的任意乙個數,相同數值不會重複出現。設計乙個演算法,找出數列中符合條件的數對的個數,滿足數對中兩數的和等於n+1。

複雜度最好是o(n),如果是o(n2)則不得分。

四道微軟面試演算法題

1 乙個整數數列,元素取值可能是0 65535中的任意乙個數,相同數值不會重複出現。0是例外,可以反覆出現。請設計乙個演算法,當你從該數列中隨意選取5個數值,判斷這5個數值是否連續相鄰。注意 5個數值允許是亂序的。比如 8 7 5 0 6 0可以通配任意數值。比如 8 7 5 0 6 中的0可以通配...

兩道面試演算法題

最近面試 兩道演算法題 說難不難 要寫全對也不容易 很慚愧 我沒有一次寫對 第一道 無序int陣列 找到中位數 void swap int a,int b int get kth number vector num,int k,int start,int end 一次劃分結束 index i if ...

2017微軟面試演算法題回顧

慘痛的回憶 1.求乙個陣列中的逆序對數 思路 o n2 的解法很明顯,暴力破解即可。但這肯定不是面試官要的答案,很明顯這樣的題是找至少o nlogn 的解法。考慮使用歸併排序,在歸併排序中是將陣列以mid分為左右兩部分,合併到新的陣列中的時候,比較a i 和a j 的大小,如果a i 比a j 大則...