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