微軟公司的面試問題(2)

運算

★連結表和數組之間的區別是什麼?

★做一個連結表,你為什麼要選擇這樣的方法?

★選擇一種算法來整理出一個連結表。你為什麼要選擇這種方法?現在用o(n)時間來做。

★說說各種股票分類算法的優點和缺點。

★用一種算法來顛倒一個連結表的順序。現在在不用遞歸式的情況下做一遍。

★用一種算法在一個循環的連結表里插入一個節點,但不得穿越連結表。

★用一種算法整理一個數組。你為什麼選擇這種方法?

★用一種算法使通用字元串相匹配。

★顛倒一個字元串。最佳化速度。最佳化空間。

★顛倒一個句子中的詞的順序,比如將“我叫克麗絲”轉換為“克麗絲叫我”,實現速度最快,移動最少。

★找到一個子字元串。最佳化速度。最佳化空間。

★比較兩個字元串,用o(n)時間和恆量空間。

★假設你有一個用1001個整數組成的數組,這些整數是任意排列的,但是你知道所有的整數都在1到1000(包括1000)之間。此外,除一個數字出現兩次外,其他所有數字只出現一次。假設你只能對這個數組做一次處理,用一種算法找出重複的那個數字。如果你在運算中使用了輔助的存儲方式,那么你能找到不用這種方式的算法嗎?