算法面试:精选微软等公司经典的算法面试100题 第26-35题
?
??????????????? 算法面試:精選微軟等公司經典的算法面試100題 第26-35題
?
?
26.左旋轉字符串
題目:
定義字符串的左旋轉操作:把字符串前面的若干個字符移動到字符串的尾部。
如把字符串abcdef左旋轉2位得到字符串cdefab。請實現字符串左旋轉的函數。
要求時間對長度為n的字符串操作的復雜度為O(n),輔助內存為O(1)。
27.跳臺階問題
題目:一個臺階總共有n級,如果一次可以跳1級,也可以跳2級。
求總共有多少總跳法,并分析算法的時間復雜度。
這道題最近經常出現,包括MicroStrategy等比較重視算法的公司都
曾先后選用過個這道題作為面試題或者筆試題。
28.整數的二進制表示中1的個數
題目:輸入一個整數,求該整數的二進制表達中有多少個1。
例如輸入10,由于其二進制表示為1010,有兩個1,因此輸出2。
分析:
這是一道很基本的考查位運算的面試題。
包括微軟在內的很多公司都曾采用過這道題。
29.棧的push、pop序列
題目:輸入兩個整數序列。其中一個序列表示棧的push順序,
判斷另一個序列有沒有可能是對應的pop順序。
為了簡單起見,我們假設push序列的任意兩個整數都是不相等的。?
比如輸入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一個pop系列。
因為可以有如下的push和pop序列:
push 1,push 2,push 3,push 4,pop,push 5,pop,pop,pop,pop,
這樣得到的pop序列就是4、5、3、2、1。
但序列4、3、5、1、2就不可能是push序列1、2、3、4、5的pop序列。
30.在從1到n的正數中1出現的次數
題目:輸入一個整數n,求從1到n這n個整數的十進制表示中1出現的次數。
例如輸入12,從1到12這些整數中包含1 的數字有1,10,11和12,1一共出現了5次。
分析:這是一道廣為流傳的google面試題。
?
?
?
?
31.華為面試題:
一類似于蜂窩的結構的圖,進行搜索最短路徑(要求5分鐘)
32.
有兩個序列a,b,大小都為n,序列元素的值任意整數,無序;
要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小。
例如: ?
var a=[100,99,98,1,2, 3];
var b=[1, 2, 3, 4,5,40];
33.
實現一個挺高級的字符匹配算法:
給一串很長字符串,要求找到符合要求的字符串,例如目的串:123
1******3***2 ,12*****3這些都要找出來
其實就是類似一些和諧系統。。。。。
34.
實現一個隊列。
隊列的應用場景為:
一個生產者線程將int類型的數入列,一個消費者線程將int類型的數出列
35.
求一個矩陣中最大的二維矩陣(元素和最大).如:
1 2 0 3 4
2 3 4 5 1
1 1 5 3 0
中最大的是:
4 5
5 3
要求:(1)寫出算法;(2)分析時間復雜度;(3)用C寫出關鍵代碼
總結
以上是生活随笔為你收集整理的算法面试:精选微软等公司经典的算法面试100题 第26-35题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 影响你的人
- 下一篇: RHEL 5.4下cyrus-sasl-