
这本书收集了约60道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题,分析问题,解决问题,寻找更优的解法。本书的内容分为下面几个部分:(1)游戏之乐:从游戏和其他有趣问题出发,化繁为简,分析总结。(2)数字之魅:编程的过程实际上就是和数字及字符打交道的过程。这一部分收集了一些好玩的对数字进行处理的题目。(3)结构之法:汇集了常见的对字符串、链表、队列,以及树等进行操作的题目。(4)数学之趣:列举了一些不需要写具体程序的数学问题,锻炼读者的抽象思维能力。书中绝大部分题目都提供了详细的解说。 每道题目后面还有一至两道扩展问题,供读者进一步钻研。书中还讲述了面试的各种小故事,告诉读者微软需要什么样的技术人才,重视什么样的能力,如何甄别人才。回答读者关于IT业面试,招聘,职业发展的疑问。这本书的很多题目会出现在IT 行业的各种笔试、面试中,但这本书更深层的意义在于引导读者思考,和读者共享思考之乐,编程之美。
第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 24点游戏1.17 俄罗斯方块游戏1.18 挖雷游戏第2章 数字之魅--数字中的技巧2.1 求二进制数中1的个数2.2 不要被阶乘吓倒2.3 寻找发帖“水王”2.4 1的数目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 数组循环移位2.18 数组分割2.19 区间重合判断2.20 程序理解和时间分析2.21 只考加法的面试题第3章 结构之法--字符串及链表的探索3.1 字符串移位包含的问题3.2 电话号码对应英语单词3.3 计算字符串的相似度3.4 从无头单链表中删除节点3.5 最短摘要的生成3.6 编程判断两个链表是否相交3.7 队列中取最大值操作问题3.8 求二叉树中节点的最大距离3.9 重建二叉树3.10 分层遍历二叉树3.11 程序改错第4章 数学之趣--数学游戏的乐趣4.1 金刚坐飞机问题4.2 瓷砖覆盖地板4.3 买票找零4.4 点是否在三角形内4.5 磁带文件存放优化4.6 桶中取黑白球4.7 蚂蚁爬杆4.8 三角形测试用例4.9 数独知多少4.10 数字哑谜和回文4.11 挖雷游戏的概率
评论关闭。