精选的一些《编程之美》相关资料

又要到一年的招聘季了,肯定又有很多人开始啃《编程之美》了吧。这本书从开阔视野的角度来说很好,不过限于篇幅,有的问题并没有讲清楚(甚至问题叙述模棱两可、被标榜为“鼓励同面试官交流以获得更多细节”);或者扩展问题本身很难,没有给予解答和提示。在我看书并在网络上查到的相关资料中,有很多重复的,也有不少基本没什么价值,有价值的文章是少数。为了便于查阅,也为了方便后人不必在搜索上浪费时间,我把比较有价值的文章的链接整理在下面,并附以简单说明。另外,对于一些比较早的资料,对应的是前几版的《编程之美》;《编程之美》早起版本错误之多在勘误表上可见一斑,不过既然新版已经修正了这些问题,那就请使用新书的读者放心,并在浏览资料时注意。

  作为定位与《编程之美》类似的《剑指Offer》,上面有不少对相同问题的解;后者读起来实战的临场感更强一些(测试用例、边界条件等),两本书都值得一读。解法相同的题就没必要重述了,而解法不同或者做了一些扩展的题目一并标在下面。

 

1.1 让CPU占用率曲线听你指挥

  《编程之美》读书笔记23: 1.1 让CPU占用率曲线听你指挥

    很多完整程序,这里取个代表。事实上对于不了解windows编程的人来说,这个问题难度要高于3星。

 

1.3 一摞烙饼的排序

  烙饼啊烙饼{转自ITEO

    对扩展问题做了详细探讨,原出处没有找到。

 

1.7  光影切割问题

  逆序对:从插入排序到归并排序

    我的拙作,介绍了逆序对的寻找方式的优化。

 

1.11 NIM(1)一排石头的游戏

1.12 NIM(2)“拈”游戏分析

1.13 NIM(3)两堆石头的游戏

  拈及其各種變形遊戲

    第五页对1.13扩展的NIM(4)游戏有很好的解释,并且全文可以看作NIM游戏的阅读材料。

    我有写一篇总结NIM游戏规律的博文的计划,不过不知道时间是否允许。

  《剑指Offer》面试题40:只出现一次的数字

    又是XOR的应用。

 

1.18 挖雷游戏

4.11 扫雷游戏的概率

  这两道题原书没有解。

  快照/转帖

    最早解答4.11的博文的百度快照,源地址我打不开。

  编程之美扫雷篇

    另一个角度解答4.11问题。

  解答《编程之美》1.18问题1:给所有未标识方块标注有地雷概率

    我的拙作之二,对于网络上没有分析的1.18问题1进行解答。

 

2.1 求二进制中1的个数

  《编程之美》读书笔记——“求二进制数中1的个数”

    这个是我买的纸质版《编程之美》这一节的读者反馈里的链接,不过翻了下电子版,似乎早期的没有,因此附在这里。

  《剑指Offer》面试题10:二进制中1的个数

    如果输入是负数,那么《编程之美》第一段代码还能运行吗?(尽管它与《剑指Offer》解一不同)

 

2.19 区间重合判断

  编程之美2.19——区间重合判断(线段树)

    扩展问题二维空间的覆盖问题的线段树解。

 

2.21 只考加法的面试题

  《编程之美》2.21 只考加法的面试题

    这个题原书也没有解,此文已经很详细了。

 

3.4 从无头链表中删除节点

  《剑指Offer》面试题13:在O(1)时间删除链表结点

    如果给定了单链表头结点和一个结点的指针,要求删除此结点(可能是头结点或尾结点),又该如何求解?

3.6 编程判断两个链表是否相交

   《编程之美》3.6判断链表是否相交之扩展:链表找环方法证明

 

    我的拙作之三,其中原问题的解借鉴的部分请见注释,此文主要是说明怎样证明找环和找环入口算法的正确性。

    同时,根据判环算法,可以解决3.11的扩展问题:链表判断是否有环的程序改错。

 

3.7 队列中取最大值操作问题

  《剑指Offer》面试题7:用两个栈实现一个队列

    介绍了另一个问题:如何用两个队列实现一个栈? 

 

3.8 求二叉树中节点的最大距离

  《编程之美: 求二叉树中节点的最大距离》的另一个解法

    本节总结里提到的链接,其实个人认为代码比原书中漂亮多了。我转载了此文:http://www.cnblogs.com/wuyuegb2312/articles/3174476.html

 

3.10 分层遍历二叉树

  《编程之美:分层遍历二叉树》的另外两个实现

    本节节末提到的链接。其实我似乎记得当初在上严蔚敏版《数据结构》课程时,分层遍历二叉树就是借助队列实现的,思想和这个一样。

 

3.11 程序改错

  http://www.cnblogs.com/wuyuegb2312/archive/2013/05/26/3090369.html

我的拙作之四,全方位分析二分查找这个老生常谈的问题,并不仅仅限于代码改错。有意避开陷阱要比掉入陷阱后想办法爬出来更好,虽然这并不代表我们不需要知道如何爬上来。扩展问题——判断链表是否有环的程序改错——请看3.6的链接。

 

4.2 瓷砖覆盖地板

  poj 2411 & 编程之美 4.2 瓷砖覆盖地板

    是对扩展问题1“1*2瓷砖覆盖8*8地板”的状态动态规划解法中我所看到的最简洁易懂、空间占用少的。

    更可贵的是本文提供了p*q瓷砖覆盖M*N地板可行性的一般结论和阅读资料(MIT的pdf)。

  《剑指Offer》面试题9:斐波那契数列

    扩展问题中,2*M的地板覆盖问题的递推公式F(M)=F(M-1)+F(M-2),形式上是斐波那契数列。

 

4.3 买票找零

  从《编程之美》买票找零问题说起,娓娓道来卡特兰数——兼爬坑指南

    我的拙作之五,标题说明一切。

 

4.5 磁带文件存放优化

  《编程之美》4.5磁带文件存放优化:最优解是怎样炼成的

    我的拙作之六,原书对于解是最优解根本没有说明白,只是举了个例子而已;这篇文章将告诉你为什么是最优解。

 

4.7 蚂蚁爬杆

  编程之美4.7蚂蚁爬杆扩展问题附猎人抓狐狸(必胜策略)

    对扩展问题很详细的探讨。

 

另外再附两个链接,请注意时效性:

  博文视点

    《编程之美》出版方,收录了一些问题的网友的解答。

  薛迪的专栏

    很多解题法被《编程之美》收录。





本文转自五岳博客园博客,原文链接:www.cnblogs.com/wuyuegb2312/p/3185083.html,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/397662.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 内置函数_java8 四大内置核心函数式接口

其他补充接口:一、Consumer:消费型接口(void accept(T t))来看一个简单得例子:1 /**2 * 消费型接口Consumer3 */4 Test5 public void test1 () {6 consumo(500, (x) -> System.out.println(x));7 }89 public void consumo (double money, …

jQuery - (JQuery datatables api 使用解读)

学习可参考&#xff1a;http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/2006942 分别导入css和js文件 <link href"~/Content/bootstrap.css" rel"stylesheet" /> <link href"~/Content/datatab…

Tomcat配置JNDI数据源

经过3个多小时的努力&#xff0c;配置JNDI数据源(主要是通过DBCP连接池)终于搞定&#xff5e;还是Tomcat官方的说明好&#xff0c;不过全是英文的&#xff0c;大概还看得懂&#xff0e;百度上那么花花绿绿的太多了&#xff0c;一个也没成功&#xff01;&#xff0e;&#xff0e…

java 线程池 固定大小_使用Executors服务在Java中创建固定大小线程池的最佳方法...

查看源代码,您将意识到&#xff1a;Executors.newFixedThreadPool(threadPoolSize);相当于&#xff1a;return new ThreadPoolExecutor(threadPoolSize, threadPoolSize, 0L, MILLISECONDS,new LinkedBlockingQueue());由于它不提供显式的RejectedExecutionHandler,因此使用默认…

令牌验证 token

通过令牌验证在注册中心控制权限&#xff0c;以决定要不要下发令牌给消费者&#xff0c;可以防止消费者绕过注册中心访问提供者&#xff0c;另外通过注册中心可灵活改变授权方式&#xff0c;而不需修改或升级提供者。 可以全局设置开启令牌验证&#xff1a; <!--随机token令…

easybcd 支持 windows 10 和 ubuntu 14.04 双系统启动

家里计算机系统 windows 10 全新安装。 原本是双系统的&#xff0c;还有一个ubuntu。 windows 10 安装以后&#xff0c;恢复ubuntu就是问题了。 (事后经验&#xff1a;请不要立刻安装bcd修改工具) 最初的方法是利用easybcd修改bcd记录。操作是成功的&#xff0c;但系统重新启动…

需求分析与原型设计

结对者&#xff1a;031402140李严 0314026617林瑞斌 需求分析与原型设计 NABCD模型 N&#xff08;Need&#xff0c;需求&#xff09;: 收集信息的过程太过繁琐&#xff0c;有班级总负责人需汇总每一个同学的志愿并填入excel表中&#xff0c;上交年级负责人&#xff0c;年级负责…

java导出表格_java怎么导出excel表格

import com.spire.xls.ExcelVersion;import com.spire.xls.Workbook;import com.spire.xls.Worksheet;public class InsertArray {public static void main(String[] args) {//创建Workbook对象Workbook wb new Workbook();//获取第一张62616964757a686964616fe4b893e5b19e313…

for 循环 和 Array 数组对象

博客地址&#xff1a;https://ainyi.com/12 for 循环 和 Array 数组对象方法 for for-in for-of forEach效率比较 - 四种循环&#xff0c;遍历长度为 1000000 的数组叠加&#xff0c;得到的时间差&#xff1a;for 3for-in 250for-of 7forEach 44- 效率速度&#xff1a;for >…

IntelliJ IDEA---java的编译工具【转】

转自&#xff1a;http://baike.baidu.com/link?urlsEpS0rItaB9BiO3i-qCdGSYiTIVPSJfBTjSXXngtN2hBhGl1j36CYQORKrbpqMHqjvu3MOfkgVzpMqr8To2l2q IDEA 全称 IntelliJ IDEA&#xff0c;是java语言开发的集成环境&#xff0c;IntelliJ在业界被公认为最好的java开发工具之一&#…

OC中文件读取类(NSFileHandle)介绍和常用使用方法

NSFileHandle 1.NSFileManager类主要对于文件的操作(删除&#xff0c;修改&#xff0c;移动&#xff0c;赋值等等) //判断是否有 tagetPath 文件路径&#xff0c;没有就创建NSFileManager *fileManage [NSFileManager defaultManager];BOOL success [fileManage createFileAt…

java filereader读文件_Java FileReader读文件

import java.io.*;class FileReaderDemo{public static void main(String[] args) throws IOException{//创建一个文件读取流对象&#xff0c;和指定名称的文件相关联。//要保证该文件是已经存在的&#xff0c;如果不存在&#xff0c;会发生异常FileNotFoundExceptionFileReade…

struts2拦截器

struts拦截器 图&#xff1a; 1、拦截器是什么&#xff1f; 分离关注&#xff1a; 完成一个功能&#xff0c;可以写在一个类中&#xff0c;然后一个类中4个步骤&#xff0c;实现该类完成。 我们可以将4个步骤写在4个类中&#xff0c;然后每一个类完成一部分功能&#xff0c;然后…

Springboot-Jpa多数据库配置-2.0+版本

pom.xml增加: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency> 配置表同JdbcTemplate配置. 主数据源: ConfigurationEnableTransactionManagementEna…

Windows虚拟地址转物理地址(原理+源码实现,附简单小工具)

By Lthis 上个月就想写了&#xff0c;一直没时间...网上大概搜了一下&#xff0c;原理与操作倒是一大堆&#xff0c;一直没看到源码实现&#xff0c;总得有人动手&#xff0c;这回轮到我了。东西写得很烂&#xff0c;请大牛勿喷。一直觉得靠源码的方式驱动学习是非常好的一种学…

python装饰器的使用

借用装饰器&#xff0c;我们可以批量的对老的函数进行改造或扩展老函数功能&#xff0c;比如需要对函数的接收参数进行过滤&#xff0c;Flash的url路由功能就是使用的这个方式 def dropoushu(): # 这一层函数可以去掉&#xff0c;如果去掉了&#xff0c;则使用checkjiou这种方…

7_文件上传漏洞

文件上传漏洞 当文件上传时&#xff0c;若服务端脚本语言未对上传的文件进行严格验证和过滤&#xff0c;若恶意用户上传恶意的脚本文件时&#xff0c;就有可能控制整个网站甚至是服务器&#xff0c;这就是文件上传漏洞。 权限 1.网站后台权限&#xff1a;登陆了后台&#xff0…

mysql数据库如何实现分页查询_不同数据库的分页查询实现方法总结

分页查询是数据库查询中经常用到的一项操作&#xff0c;对查询出来的结果进行分页查询可以方便浏览。那么Oracle、SQL Server、MySQL是如何实现查询的呢&#xff1f;本文我们就来介绍这一部分内容。首先我们先看一下SQL Server 数据库中SQL语句查询分页数据的解决方案&#xff…

POJ - 3842 An Industrial Spy dfs(水)

题意:给你一串数字&#xff0c;最少一个&#xff0c;最多七个&#xff0c;问用这里面的数字能组成多少素数&#xff0c;不重复。 思路&#xff1a;之前还遍历10000000的每一个素数&#xff0c;结果超时&#xff0c;后来发现直接dfs就可以了&#xff0c;只是标记一下做过的数。 …

飞机大战小游戏1.0版本

小时候大家应该都玩过飞机大战吧&#xff0c;这就是仿的一个飞机大战&#xff0c;但是没有写的很全&#xff0c;只能玩一次&#xff0c;死掉之后需要刷新页面玩第二次&#xff0c;话不说多&#xff0c;上代码&#xff1a; 初始页面&#xff1a; 整个的html代码还是很少&#xf…