這本書收集了約60道算法和程序設計題目。作者試圖從書中各種有趣的問題出發(fā),引導讀者發(fā)現(xiàn)問題,分析問題,解決問題,尋找更優(yōu)的解法。本書的內容分為下面幾個部分:(1)游戲之樂:從游戲和其他有趣問題出發(fā),化繁為簡,分析總結。(2)數(shù)字之魅:編程的過程實際上就是和數(shù)字及字符打交道的過程。這一部分收集了一些好玩的對數(shù)字進行處理的題目。(3)結構之法:匯集了常見的對字符串、鏈表、隊列,以及樹等進行操作的題目。(4)數(shù)學之趣:列舉了一些不需要寫具體程序的數(shù)學問題,鍛煉讀者的抽象思維能力。書中絕大部分題目都提供了詳細的解說。 每道題目后面還有一至兩道擴展問題,供讀者進一步鉆研。書中還回答了讀者關于IT業(yè)面試,招聘,職業(yè)發(fā)展的疑問。這本書的很多題目會出現(xiàn)在IT 行業(yè)的各種筆試、面試中,但這本書更深層的意義在于引導讀者思考,和讀者共享思考之樂,編程之美。
鄒欣,現(xiàn)任微軟Windows中國工程團隊首席研發(fā)總監(jiān)。1996 – 2003年,鄒欣在微軟Outlook團隊從事開發(fā)工作;2003 – 2005年,他在微軟內部質量工具團隊和Visual Studio團隊負責軟件項目管理工具的開發(fā);2005 – 2012年,他擔任微軟亞洲研究院技術創(chuàng)新組研發(fā)主管,負責研究成果的產品化和創(chuàng)新項目;2012 – 2014年,他擔任微軟亞洲互聯(lián)網工程院首席研發(fā)總監(jiān),負責必應搜索客戶端、必應輸入法、必應詞典等產品。2014 – 現(xiàn)在,他擔任微軟Windows工程院首席研發(fā)總監(jiān),負責Edge,Cortana, UWP App 在中國的發(fā)展。鄒欣于1991年獲北京大學計算機軟件專業(yè)學士學位。1996年獲美國美國韋恩州立大學(Wayne State University)計算機軟件專業(yè)碩士學位。他在2007年出版了《移山之道》,于2008年出版了《編程之美》 (合作),于2014年出版了《構建之法——現(xiàn)代軟件工程》。
第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 構造數(shù)獨
1.16 24點游戲
1.17 俄羅斯方塊游戲
1.18 挖雷游戲
第2章 數(shù)字之魅--數(shù)字中的技巧
2.1 求二進制數(shù)中1的個數(shù)
2.2 不要被階乘嚇倒
2.3 尋找發(fā)帖“水王”
2.4 1的數(shù)目
2.5 尋找最大的K個數(shù)
2.6 精確表達浮點數(shù)
2.7 最大公約數(shù)問題
2.8 找符合條件的整數(shù)
2.9 斐波那契(Fibonacci)數(shù)列
2.10 尋找數(shù)組中的最大值和最小值
2.11 尋找最近點對
2.12 快速尋找滿足條件的兩個數(shù)
2.13 子數(shù)組的最大乘積
2.14 求數(shù)組的子數(shù)組之和的最大值
2.15 子數(shù)組之和的最大值(二維)
2.16 求數(shù)組中最長遞增子序列
2.17 數(shù)組循環(huán)移位
2.18 數(shù)組分割
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章 數(shù)學之趣--數(shù)學游戲的樂趣
4.1 金剛坐飛機問題
4.2 瓷磚覆蓋地板
4.3 買票找零
4.4 點是否在三角形內
4.5 磁帶文件存放優(yōu)化
4.6 桶中取黑白球
4.7 螞蟻爬桿
4.8 三角形測試用例
4.9 數(shù)獨知多少
4.10 數(shù)字啞謎和回文
4.11 挖雷游戲的概率