作品简介

这本书收集了约60道算法和程序设计题目,这些题目大部分在近年的笔试、面试中出现过,或者是被微软员工热烈讨论过。作者试图从书中各种有趣的问题出发,引导读者发现问题,分析问题,解决问题,寻找更优的解法。本书的内容分为下面几个部分:

(1)游戏之乐:从游戏和其他有趣问题出发,化繁为简,分析总结。

(2)数字之魅:编程的过程实际上就是和数字及字符打交道的过程。这一部分收集了一些好玩的对数字进行处理的题目。

(3)结构之法:汇集了常见的对字符串、链表、队列,以及树等进行操作的题目。

(4)数学之趣:列举了一些不需要写具体程序的数学问题,锻炼读者的抽象思维能力。

书中还讲述了面试的各种小故事,告诉读者微软需要什么样的技术人才,重视什么样的能力,如何甄别人才。回答读者关于IT业面试,招聘,职业发展的疑问。这本书的很多题目会出现在IT 行业的各种笔试、面试中,但这本书更深层的意义在于引导读者思考,和读者共享思考之乐,编程之美。

《编程之美》由下面几位作者协同完成,如果把这本书的写作比作一个软件项目,它有下面的各个阶段,每个阶段则有不同的目标和角色。

1. 构想阶段:邹欣。

2. 计划阶段:邹欣、刘铁锋、莫瑜。

3. 实现阶段/里程碑(一):上述全部人员,加上李东、张晓、陈远、高霖(负责封面设计)。

4. 实现阶段/里程碑(二):上述全部人员,加上梁举、胡睿。

5. 稳定阶段:上述全部人员,加上博文视点的编辑们。

6. 发布阶段:邹欣、刘铁锋和博文视点的编辑们。

作品目录

  • 推荐序
  • 致谢
  • 面试杂谈
  • 第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 挖雷游戏的概率
展开全部