当前位置: 首页 > 编程日记 > 正文

开篇第一题:经典中的经典!

开篇第一题:经典中的经典!

                         ——评《编程之美》

原贴地址:http://www.douban.com/review/2130819/

应该是差不多两个月前收到了这本书,一直到最近才抽出时间来看了下,这本书的开篇的第一题现在基本已经成了经典中的经典了,相信很多人都因为这个控制CPU使用率的题从而买了这本书的,在我自己看过这本书后我同时相信买了这本书的人应该会觉得非常的值得,要写出合理实现需求、高性能以及大数据量的程序,数据结构和算法就成为关键要素了,这本书用简短的题目给大家回顾了一些经典的算法。

首先,这本书以微软面试题吸引了众多人的梦想,毕竟微软的技术强这是毋庸置疑的,面试过不少的人,自己也觉得面试题真的是非常的难出,毕竟面试要求的是面试官在短短的几十分钟或一个小时内考察面试者是否符合公司的要求,在看《编程之美》序中看到邹欣因为面试一个进行过CPU压力测试的面试者时,想到了那道经典的控制CPU使用率的问题,从这道题我们可以看到考察面试人员对一项技术掌握是否精通的考评标准,我觉得和我之前写的那几篇关于如何考察面试者是否达到了精通的一些题是差不多同样的道理,毕竟精通这两个字不是随便就能达到的,从《编程之美》这本书中也看到了微软在考察面试者能力时的要求是非常高的,彻底颠覆了我对微软亚洲研究院这边的看法,:),另外从这本书列举的一些题目可以看出微软出的面试题的水准确实是相当高的,可以做到在短时间内充分的考察面试者在该方面的能力,我想这也是大部分面试官在出面试题时需要尽量达到的目标。

以上是从面试题的角度看这本书,接着来看看这本书的内容,估计现在书中的很多题目都已经成为了业界讨论的焦点话题了,像控制CPU使用率、双线程下载、数独游戏、24点、电梯调度、连连看等等一系列经典的题目,这些题目对于纠正目前很多业界从业人士对数据结构和算法不重视的看法应该是会有帮助的,当我在做中小型企业应用开发的时候,我也一直认为数据结构和算法即使不掌握也是没什么关系,而现在我也非常重视数据结构和算法了,现在在做面试的时候对于科班出身的同学,我会问问数据结构、算法的成绩,另外还有一个和书中同样的看法就是,数学非常重要,写程序和我们在学数学时解方程其实没有太大的差别,所以我认为数学学的好的人大部分是比较适合从事软件行业的,:),仅为个人看法,书中在数学方面也列举了不少经典的题目,像寻找发帖水王、寻找数组中的最大值和最小值等等。

总体而言,这本书并不是说要告诉大家面试微软的技巧,去死记硬背这些答案,那没有多少意义的,毕竟面试官更多的其实考察的是面试者的逻辑思维能力以及对相关知识的掌握程度,何况面试官通常都是会调整题目的,并不是说每次问的都是一样的,我想这本书能够给大家带来的最多的参考就是理解什么才是真正的精通,另外也给大家呈现了数据结构和算法为什么会是程序的根本,而对于要实现高性能以及海量数据处理的程序这些就更为关键了,因此个人觉得除了这本书之外,数据结构和算法相关的书即使不是科班出身的人也是应该仔细学习学习的。

转载于:https://www.cnblogs.com/bvbook/archive/2009/07/14/1523384.html

相关文章:

(C++)高精度整数的存储、读入、比较和四则运算

目录 1. 存储 2. 读入 3. 比较大小 4. 加法 5. 减法 6. 高精度整数和低精度整数的乘法 7. 高精度整数除以低精度整数 高精度整数,又称大整数,其含义就是用基本数据类型无法存储其精度的整数。如:10进制下有着1000个数位的整数。 低精…

TP-link 设置MAC地址过滤

如果你想限制上网的人数,你可以在路由中设置MAC地址过滤,或IP地址过滤 以下以MAC地址过滤为例: http://192.168.1.1/ 输入用户名,密码登录 进入介面: “开启防火墙(防火墙的总开关)” 也要打上…

flask的客户端服务端

1.首先要进行后端与前端的连接有get 和post请求 get请求是直接在网页上打出已将定义好的网址 if __name__ __main__: app.run(host"localhost",port8800)host也可以写ip地址2.在进行交互前需要提前引入 flask 模块 pip3 install Flask详细代码 1 import json2 #…

1023 Have Fun with Numbers

考察大数乘法(整型是2)或者加法(两个相同的数字相加),然后将两个大数用到的0-9的个数比对。 进入比对前先判断长度是否相等,如不等,说明一定不是原序列。 一些需要注意的细节: 1. 字符串的字符转化为整数时不要忘记 减0 2. 封…

Oracle中Hint深入理解(原创)

http://czmmiao.iteye.com/blog/1478465 Hint概述 基于代价的优化器是很聪明的,在绝大多数情况下它会选择正确的优化器,减轻了DBA的负担。但有时它也聪明反被聪明误,选择了很差的执行计划,使某个语句的执行变得奇慢无比。 此时就…

css sprites之圆角

第一步&#xff1a;创建我们的 Sprite用PS等工具合成如图所示的图片&#xff08;以一个像素的红线来区分&#xff09;第二部分:编写HTML代码首先&#xff0c;我们会给容器 div 一个 .roundedBox类 :<div class"roundedBox"></div> 现在&#xff0c;我们必…

爬虫原理与数据抓取----- urllib2:URLError与HTTPError

urllib2 的异常错误处理 在我们用urlopen或opener.open方法发出一个请求时&#xff0c;如果urlopen或opener.open不能处理这个response&#xff0c;就产生错误。 这里主要说的是URLError和HTTPError&#xff0c;以及对它们的错误处理。 URLError URLError 产生的原因主要有&…

1024 Palindromic Number

1. 本题给的N的范围是10位以内的整数&#xff0c;但是注意了不知要要和反序列相加多少次&#xff0c;因此大数的int d[]的大小10是远远不够&#xff0c;100才全部AC。 2. 一开始不通过不知道是位数不够&#xff0c;以为是到确定步数停下来的代码写错了&#xff0c;其实通过两个…

HibernateTemplate 查询

Spring中常用的hql查询方法getHibernateTemplate()上 一、find(String queryString); 示例&#xff1a;this.getHibernateTemplate().find("from bean.User"); 返回所有User对象 二、find(String queryString , Object value); 示例&#xff1a;this.getH…

EMQ学习笔记---Clean Session和Retained Message

MQTT会话(Clean Session)MQTT客户端向服务器发起CONNECT请求时&#xff0c;可以通过’Clean Session’标志设置会话。‘Clean Session’设置为0&#xff0c;表示创建一个持久会话&#xff0c;在客户端断开连接时&#xff0c;会话仍然保持并保存离线消息&#xff0c;直到会话超时…

JPA相关--Annotation

1.自定义注解import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;Target(ElementType.METHOD) //指定可以用在什么地方&#xff0c;默认所有地方 Retention(…

(C++)变长数组vector的常见用法

目录 1. vector的定义 2. vector内的元素访问 3. vector常用函数 push_back(x) pop_back() size() clear() insert(it,x) erase(it)和erase(first,last) 4. vector常见用途 1.存储数据 2.用邻接表存储图 1. vector的定义 1.1 单独定义vector vector<typename&…

【kuangbin专题】计算几何_半平面交

1.poj3335 Rotating Scoreboard 传送&#xff1a;http://poj.org/problem?id3335 题意&#xff1a;就是有个球场&#xff0c;球场的形状是个凸多边形&#xff0c;然后观众是坐在多边形的边上的&#xff0c;问你是否在球场上有个地方可以放一个记分牌&#xff0c;然后所有的观众…

设计模式之状态模块加观察者模式

背景&#xff1a; 用户操作鼠标&#xff0c;涉及的动作有左击、右击、双击。每种动作对应一种状态&#xff0c;状态的切换对应着不同的鼠标点击事件。 类图&#xff1a; 状态接口类&#xff1a; /*** 状态接口**/ public interface State {public void change(); } 鼠标移入类&…

objectdatasource中delete的尴尬。

这里用的是listview和objectdatasource。本来是为了省力直接用了objectdatasource&#xff0c;这可倒好为了一个不知名的问题折腾了半天。首先&#xff0c;本来用objectdatasource&#xff0c;里面的各种method&#xff0c;比如delete&#xff0c;update等等&#xff0c;对应的…

1039 Course List for Student

1. 此题必须采用vectorhash的策略&#xff0c;否则最后一个用例超时&#xff0c;定义一个vector类型的数组&#xff0c;长度由名字的最大范围决定 vector<int> stus[26*26*26*10]; 2. 起初我定义了结构体&#xff0c;里面用一个字符串存放学生的名字&#xff0c;vector…

《编程匠艺》读书笔记

《编程匠艺》读书笔记之一 《编程匠艺》读书笔记之二 《编程匠艺》读书笔记之三 《编程匠艺》读书笔记之四 《编程匠艺》读书笔记之五 《编程匠艺》读书笔记之六 《编程匠艺》读书笔记之七 《编程匠艺》读书笔记之八 《编程匠艺》读书笔记之九 《编程匠艺》读书笔记之十 《编程…

【转】C语言的memset函数

http://vip.6to23.com/tenax/clib/string/memset.htmlhttp://hi.baidu.com/longchengjiang/blog/item/32c0e243acb8191772f05d29.htmlhttp://www.cnblogs.com/xray2005/archive/2009/07/07/1518288.html 原型&#xff1a;extern void *memset(void *buffer, int c, int count);…

一个6年iOS程序员的工作感悟,送给还在迷茫的你

前言 每一个开发者&#xff0c;都有一段不愿提起的经历&#xff0c;很多年前&#xff0c;刚刚从大学毕业的时候&#xff0c;很多公司来校招。其中最烂俗的一个面试问题是&#xff1a;“你希望你之后三到五年的发展是什么&#xff1f;”。我当时的标准回答是&#xff08;原话&am…

1063 Set Similarity

1. 这题需要利用set容器的去重功能&#xff0c;因此使用set来存放每一组的数据。 2. 起初我的计算相似度的函数是这样设计的&#xff1a;传入set1和set2&#xff0c;声明一个set3&#xff0c;将set1中的数据全部插入set3中&#xff0c;再声明一个重复元素个数same_n&#xff0…

Volume是如何工作的

在这篇文章中&#xff0c;我会尽最大的努力来解释Volume是如何工作的&#xff0c;并展示一些最佳实践。这篇文章主要是针对那些对Volume不了解的Docker用户&#xff0c;当然有经验的用户也可以通过本文了解一些Volume的细节。想要了解Docker Volume&#xff0c;首先我们需要知道…

使用 TFDConnection 的 pooled 连接池

从开始看到这个属性&#xff0c;就一直认为他可以提供一个连接池管理功能&#xff0c; 苦于文档资料太少&#xff0c; 甚至在帮助中对该属性的使用都没有任何介绍&#xff0c;如果你搜索百度&#xff0c;也会发现基本没资料。 最后终于在其官方网站看到了其完整相关的英文资料&…

Java与UML交互图

Java与UML交互图 前面我们主要讨论的是UML类图&#xff0c;下面我们要讨论的是另一种UML图——交互图&#xff08;Interaction Diagram&#xff09;。交互图描述的是一组对象之间的交互过程&#xff0c;或者说&#xff0c;这里我们实际上要回答这样一个问题&#xff1a;“方法调…

1054 The Dominant Color

1. 此题用到了map<string,int>将输入的颜色(long long也存不下&#xff0c;只好作为string存入)的次数记录&#xff0c;看来默认一个没出现过的string对应的int是0。因此记次数的时候 if(mp[str])mp[str] 1;//如果不是第一次出现&#xff0c;出现次数1 else mp[str] …

通过sqlserver日志恢复误删除的数据

通过sqlserver日志恢复误删除的数据 原文:通过sqlserver日志恢复误删除的数据如果你已经急的焦头烂额&#xff0c;看到这篇文章的时候&#xff0c;请你换个坐姿&#xff0c;深呼吸几次&#xff0c;静下心来将这篇文章读完&#xff0c;也许你的问题迎刃而解。 我遇到的情况是这样…

关于在phpStudy环境下,windows cmd中 php不是内部命令问题

首先查看system32是否加入系统变量 其次要把当前运行的php版本的路径加入到系统变量中去&#xff0c;path中&#xff0c; 一定要是这个样子的&#xff1b; D:\phpStudy\php\php-5.6.27-nts 不然没有什么用。 这样在phpstorm中以及cmd中都可以使用php命令了。

如何用javascript控制上传文件的大小

以下是引用片段&#xff1a;<form nameMyform οnsubmit"return CheckFileSize()"> <input typefile namephoto><br/> <input typesubmit valuesubmit></form> <SCRIPT LANGUAGE"JavaScri…

1071 Speech Patterns 需再做

1. alphanumerical 的意思是字母数字混合编制的&#xff0c;也就是一句话中被认为是“单词”的组成成分的有数字和字母。这也是为什么例句中can1不被认为是can。 由于这道题对大小写不敏感&#xff0c;不妨在读入后&#xff0c;把大写字母全部改成小写 //大写换小写 for(int…

IOS类似9.png

图形用户界面中的图形有两种实现方式&#xff0c;一种是用代码画出来&#xff0c;比如Quartz 2D技术&#xff0c;狠一点有OpenGL ES&#xff0c;另一种则是使用图片。 代码画的方式比较耗费程序员脑力,CPU或GPU; 图片则耗费磁盘空间,会增加app的体积.一般的app我们会偏重于使用…

Shell 编程

Shell 是一个用 C 语言编写的程序&#xff0c;通过 Shell 用户可以访问操作系统内核服务。它类似于 DOS 下的 command 和后来的 cmd.exe。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。Shell script 是一种为 shell 编写的脚本程序。Shell 编程一般指 shell 脚本编…