微軟公司的面試問題(2)
運算★鏈接表和數組之間的區別是什麼?★做一個鏈接表,你為什麼要選擇這樣的方法?★選擇一種演算法來整理出一個鏈接表。你為什麼要選擇這種方法?現在用O(n)時間來做。★說說各種股票分類演算法的優點和缺點。★用一種演算法來顛倒一個鏈接表的順序。現在在不用遞歸式的情況下做一遍。★用一種演算法在一個循環的鏈接表裡插入一個節點,但不得穿越鏈接表。★用一種演算法整理一個數組。你為什麼選擇這種方法?★用一種演算法使通用字元串相匹配。★顛倒一個字元串。優化速度。優化空間。★顛倒一個句子中的詞的順序,比如將「我叫克麗絲」轉換為「克麗絲叫我」,實現速度最快,移動最少。★找到一個子字元串。優化速度。優化空間。★比較兩個字元串,用O(n)時間和恆量空間。★假設你有一個用1001個整數組成的數組,這些整數是任意排列的,但是你知道所有的整數都在1到1000(包括1000)之間。此外,除一個數字出現兩次外,其他所有數字只出現一次。假設你只能對這個數組做一次處理,用一種演算法找出重複的那個數字。如果你在運算中使用了輔助的存儲方式,那麼你能找到不用這種方式的演算法嗎?★不用乘法或加法增加8倍。現在用同樣的方法增加7倍。