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