小米公司正式成立于2010年4月,是一家專注于智能產(chǎn)品自主研發(fā)的移動互聯(lián)網(wǎng)公司。“為發(fā)燒而生”是小米的產(chǎn)品理念。小米公司首創(chuàng)了用互聯(lián)網(wǎng)模式開發(fā)手機操作系統(tǒng)、發(fā)燒友參與開發(fā)改進的模式。
今年小米的筆試共三道大題,時間90分鐘
第一道 輸入一個整數(shù)數(shù)組,調(diào)整數(shù)組中數(shù)字的順序,使得所有奇數(shù)位于所有偶數(shù)的前面,例如輸入的數(shù)組為{1,2,4,7,9,8,10,15,14,20},調(diào)整后的數(shù)組 {1,7,9,15,2,4,8,10,14,20}是一種滿足條件的方案。函數(shù)的頭部已經(jīng)寫好,無返回值,有兩個參數(shù),一個是數(shù)組指針,另一個是該數(shù)組的長度。
我的解答思路是使用兩個偽指針,一個指向數(shù)組的頭部,另一個指向數(shù)組的尾部,先從前向后掃描,找到第一個偶數(shù),然后在從后向前掃描找到倒數(shù)第一個奇數(shù),交換這兩個元素,循環(huán)上述步驟直到兩個指針相遇。
第二道 輸入一個二叉排序樹,將該二叉排序樹轉(zhuǎn)換為排序的雙向鏈表。要求不能創(chuàng)建任何新的節(jié)點,只調(diào)整指針的指向。(程序員面試100題的第一道題,輸入樣例一樣),函數(shù)頭部已經(jīng)寫好,無返回值,參數(shù)為根節(jié)點的指針。
第三道 輸入一個數(shù)學(xué)表達式,包含+、-、*、/、()運算,設(shè)計一個算法計算該表達式的值,+、-不作為正負號出現(xiàn),函數(shù)頭部已經(jīng)給出,返回表達式的值,參數(shù)為字符串指針,給出了兩個函數(shù),一個字符轉(zhuǎn)換成整數(shù)的函數(shù),另一個是整數(shù)轉(zhuǎn)換成字符的函數(shù),可以直接調(diào)用。輸入樣例 1+2*(3-4)