banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

分享幾條來自微軟(Microsoft)的演算法設計筆試試題

今天晚間上網轉了轉,看到了,幾條來自微軟(Microsoft)的幾條筆試試題,主要是針對微軟學生中心的實習機會的,諸位如果想到微軟實習的話,可以考慮自己做做看,感覺上對初學者比較困難,本人目前是沒時間寫程式了,最近忙著考試,諸位如果有想法的話,直接留言,或者可以跟我聯絡吧,

第一題 一個整數數列,元素取值可能是 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) 則不得分。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。