微軟面試算法題(據說)

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)則不得分。

發佈了43 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章