热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

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

又要到一年的招聘季了,肯定又有很多人开始啃《编程之美》了吧。这本书从开阔视野的角度来说很好,不过限于篇幅,有的问题并没有讲清楚(甚至问题叙述模棱两可、被标榜为“鼓励同面试官交流以获得更多细节”);

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

  作为定位与《编程之美》类似的《剑指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蚂蚁爬杆扩展问题附猎人抓狐狸(必胜策略)

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

 

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

  博文视点

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

  薛迪的专栏

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


推荐阅读
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 众筹商城与传统商城的区别及php众筹网站的程序源码
    本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
author-avatar
拍友2502920603
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有