四道微軟面試算法題

發布時間: 2009-11-15 21:58  閱讀: 1382 次  推薦: 0   [收藏]  

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

0
1
 
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()