微軟亞洲研究院技術創(chuàng)新組研發(fā)主管鄒欣老師帶領其他幾位同事和實習生經過9個月的時間完成了這本書。
本書收集了大約60道微軟技術面試題,這些問題妙趣橫生,其解答別出心裁,還穿插了面試者的各種小故事。它傳達給讀者:微軟重視什么樣的能力,需要什么樣的人才。但它更深層的意義在于引導讀者思考,提倡一種發(fā)現問題、解決問題的思維方式,充分挖掘編程的樂趣,展示編程之美。
夢想改變世界,據說編程的人都懷揣著一個改變世界的夢想:編程神奇而充滿力量。無數的年輕人投身其中,用夢想和思考改變世界。本書更深層的意義在于引導讀者思考,和讀者共享思考之樂,編程之美。
本書收集了約60道算法和程序設計題目,這些題目大部分在近年的筆試,面試中出現過,或者是被微軟員工熱烈討論過。作者試圖從書中各種有趣的問題出發(fā),引導讀者發(fā)現問題,分析問題,解決問題,尋找更優(yōu)的解法。
本書的內容分為下面幾個部分:
游戲之樂:從游戲和其他有趣問題出發(fā),化繁為簡,分析總結。
數字之魅:編程的過程實際上就是和數字及字符打交道的過程。這一部分收集了一些好玩的對數字進行處理的題目。
結構之法:匯集了常見的對字符串、鏈表、隊列,以及樹等進行操作的題目。
數學之趣:列舉了一些不需要寫具體程序的數學問題,鍛煉讀者的抽象思維能力。
目錄:
第1章 游戲之樂——游戲中碰到的題目
1.1 讓CPU占用率曲線聽你指揮
1.2 中國象棋將帥問題
1.3 一摞烙餅的排序
1.4 買書問題
1.5 快速找出故障機器
1.6 飲料供貨
1.7 光影切割問題
1.8 小飛的電梯調度算法
1.9 高效率地安排見面會
1.10 雙線程高效下載
1.11 NIM(1)一排石頭的游戲
1.12 NIM(2)“拈”游戲分析
1.13 NIM(3)兩堆石頭的游戲
1.14 連連看游戲設計
1.15 構造數獨
1.16 點游戲
1.17 俄羅斯方塊游戲
1.18 挖雷游戲
第2章 數字之魅——數字中的技巧
2.1 求二進制數中1的個數
2.2 不要被階乘嚇倒
2.3 尋找發(fā)帖“水王”
2.4 的數目
2.5 尋找最大的K個數
2.6 精確表達浮點數
2.7 最大公約數問題
2.8 找符合條件的整數
2.9 斐波那契(Fibonacci)數列
2.10 尋找數組中的最大值和最小值
2.11 尋找最近點對
2.12 快速尋找滿足條件的兩個數
2.13 子數組的最大乘積
2.14 求數組的子數組之和的最大值
2.15 子數組之和的最大值(二維)
2.16 求數組中最長遞增子序列
2.17 數組循環(huán)移位
2.18 數組分割
2.19 區(qū)間重合判斷
2.20 程序理解和時間分析
2.21 只考加法的面試題
第3章 結構之法——字符串及鏈表的探索
3.1 字符串移位包含的問題
3.2 電話號碼對應英語單詞
3.3 計算字符串的相似度
3.4 從無頭單鏈表中刪除節(jié)點
3.5 最短摘要的生成
3.6 編程判斷兩個鏈表是否相交
3.7 隊列中取最大值操作問題
3.8 求二叉樹中節(jié)點的最大距離
3.9 重建二叉樹
3.10 分層遍歷二叉樹
3.11 程序改錯
第4章 數學之趣——數學游戲的樂趣
4.1 金剛坐飛機問題
4.2 瓷磚覆蓋地板
4.3 買票找零
4.4 點是否在三角形內
4.5 磁帶文件存放優(yōu)化
4.6 桶中取黑白球
4.7 螞蟻爬桿
4.8 三角形測試用例
4.9 數獨知多少
4.10 數字啞謎和回文
4.11 挖雷游戲的概率