新書推薦:
《
甲骨文丛书·剑桥世界暴力史(第一卷):史前和古代世界(套装全2册)
》
售價:HK$
210.6
《
甲骨文丛书·中华早期帝国:秦汉史的重估
》
售價:HK$
300.2
《
欲望与家庭小说
》
售價:HK$
101.2
《
惜华年(全两册)
》
售價:HK$
72.2
《
甲骨文丛书·古代中国的军事文化
》
售價:HK$
99.7
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:HK$
250.7
《
半导体纳米器件:物理、技术和应用
》
售價:HK$
181.7
《
创客精选项目设计与制作 第2版 刘笑笑 颜志勇 严国陶
》
售價:HK$
63.3
|
編輯推薦: |
在这里,有面试笔试常见技巧的提炼与总结;
在这里,有面试笔试高频前端知识点的整理与剖析;
在这里,有面试笔试历年前端真题的解答与拓展。
|
內容簡介: |
本书是一本讲解前端程序员面试笔试真题的书籍,在写法上,除了讲解如何解答算法问题以外,还引入了示例辅以说明,让读者能够更容易理解。
本书将程序员面试笔试过程中各类算法类真题一网打尽,在题目的广度上,通过各种渠道,搜集了近3年来典型IT企业面试笔试算法高频题目,所选择题目均为企业招聘使用题目。在题目的深度上,本书由浅入深,详细分析每一个题目,并提炼归纳。同时,引入例子与源代码、时间复杂度与空间复杂度的分析,而这些内容是其他同类书籍所没有的。本书根据真题所属知识点进行分门别类,结构合理、条理清晰,对于读者进行学习与检索意义重大。
本书是一本计算机相关专业毕业生面试笔试的求职用书,也可以作为本科生、研究生学习数据结构与算法的辅导书籍,同时也适合期望在计算机软硬件行业大显身手的计算机爱好者阅读。
|
目錄:
|
前言
面试笔试经验技巧篇
经验技巧1 如何巧妙地回答面试官的问题2
经验技巧2 如何回答技术性的问题3
经验技巧3 如何回答非技术性问题4
经验技巧4 如何回答快速估算类问题5
经验技巧5 如何回答算法设计问题6
经验技巧6 如何回答系统设计题8
经验技巧7 如何解决求职中的时间冲突问题11
经验技巧8 如果面试问题曾经遇见过,是否要告知面试官12
经验技巧9 在被企业拒绝后是否可以再申请12
经验技巧10 如何应对自己不会回答的问题13
经验技巧11 如何应对面试官的“激将法”13
经验技巧12 如何处理与面试官持不同观点这个问题14
经验技巧13 什么是职场暗语14
面试笔试真题解析篇
第1章 经典算法题19
1.1有多少苹果用来分赃19
1.2哪只猴子可以当大王20
1.3移动多少盘子才能完成汉诺塔游戏21
1.4如何利用约瑟夫环来保护你与你的朋友22
1.5怎样才能得到阿姆斯壮数24
1.6如何获取规定的排列组合25
1.7如何实现洗牌算法26
1.8怎样求出斐波那契数列27
1.9如何实现杨辉三角28
1.10牛的数量有多少29
1.11百钱买百鸡29
1.12经过这个路口多少次30
1.13球的反弹高度有多高31
1.14如何找出1000以内的“完数”31
1.15猴子吃了多少桃子32
1.16移动最少次数的三色旗33
第2章 逻辑、智力题35
2.1经典逻辑题35
2.1.1老鼠相遇的概率是多少35
2.1.2如何计算时钟的三针重叠35
2.1.3如何喝到最多瓶汽水36
2.1.4住旅店花了多少钱36
2.1.5如何判断哪个开关控制着哪盏灯36
2.1.6如何用烧绳来计算时间36
2.1.7如何用水壶获取指定的水量37
2.1.8怎样才能猜出另外两个人的数37
2.1.9卖鸡总共赚了多少38
2.1.10跳高名次是多少38
2.1.11如何根据银币猜盒子39
2.1.12马牛羊的价格是多少文钱39
2.1.13赔多少39
2.1.14海盗如何分金才能让他获得最多的金子40
2.1.15张老师的生日是哪一天41
2.1.16拿几个乒乓球41
2.2逻辑推理题42
2.2.1怎样才能推理出学生的专业42
2.2.2错误的判断是哪一个43
2.2.3最后参加紧急项目的开发人是谁43
2.2.4猜的第一个数字是多少43
2.2.5需要多少个人测试才能判断出毒酒44
2.2.6地图重合点有几个45
2.2.7掰断多少次金条才能按要求给雇工报酬46
2.2.8握手次数是多少46
2.2.9如何判断出坏鸡蛋47
2.3概率与组合48
2.3.1抽球人数是多少48
2.3.2案件发生在A区的可能性是多少48
2.3.3男女比例将会是多少48
2.3.4对称矩阵有多少个49
2.3.5A、B点有多少种走法49
2.3.6多少种排队方式50
2.3.7把球放到小桶中有多少种放法51
2.3.8正确描述100台虚拟机发生故障的是哪一个51
2.3.9圆桌上一共有多少种坐法51
2.3.10兵马俑博物馆可容纳多少人52
2.3.11两种策略的预期收益是多少52
2.3.12拾起别人帽子的概率是多少53
2.3.13合法表达式有多少个53
2.3.14会写Java和C++程序的有多少人54
2.3.15乘坐甲车的概率是多少54
2.3.16A到Z的最短路径数是多少54
2.3.17选取红黄白球的概率是多少55
2.3.18一共有多少种染色情况55
2.3.19肇事车是白车的概率是多少55
2.3.20获得冠军的情况有多少种56
2.3.21一红一黑的概率是多少56
2.3.22谁会赢56
2.3.23描述正确的是哪一项57
2.4数学计算58
2.4.1一共等了女神多少分钟58
2.4.2使用了什么进制运算58
2.4.3三角形有多少个59
2.4.4数列的规律是什么60
2.4.5数列使用了什么规律60
2.4.6余数是多少60
2.4.7如何才能找到最好的羽毛球员工61
2.4.8亮着的灯泡有多少个61
2.4.9工作时长是多少62
2.4.10最小夹角是多少度62
2.4.11求解到的余数是多少62
2.4.12如何正确计算余数63
2.4.13最高效的矩阵是哪个63
2.4.14可以实现的函数是哪个63
2.4.15可以兑换多少瓶加多宝64
2.4.16共赚多少钱64
2.4.17实际折扣是多少65
第3章 排序算法66
3.1如何实现冒泡排序67
3.2什么是插入排序70
3.3归并排序的原理是什么72
3.4快速排序使用了什么思想73
3.5选择排序的实现过程是怎样的75
3.6什么叫希尔排序78
3.7如何实现堆排序79
3.8计数排序的原理是什么81
3.9怎样用JavaScript代码实现桶排序83
第4章 链表85
4.1如何实现链表的逆序85
4.2如何从无序链表中移除重复项91
4.3如何计算两个单链表所代表的数之和95
4.4如何对链表进行重新排序99
4.5如何找出单链表中的倒数第k个元素102
4.6如何检测一个较大的单链表是否有环107
4.7如何把链表相邻元素翻转110
4.8如何把链表以k个结点为一组进行翻转112
4.9如何合并两个有序链表116
第5章 栈与队列120
5.1如何实现栈120
5.2如何实现队列124
5.3如何翻转栈的所有元素128
5.4如何根据入栈序列判断可能的出栈序列134
5.5如何用O1的时间复杂度求栈中最小元素138
5.6如何用两个栈模拟队列操作140
第6章 二叉树141
6.1二叉树基础知识141
6.2
|
內容試閱:
|
计算机技术博大精深,日新月异,Hadoop、GPU计算、移动互联网、模式匹配、图像识别、神经网络、蚁群算法、大数据、机器学习、人工智能、深度学习等新技术让人眼花缭乱,稍有懈怠,就会被时代所抛弃。于是,很多IT从业者就开始困惑了,不知道从何学起,到底什么才是计算机技术的基石。其实,其本质还是最基础的数据结构与算法知识:Hash、动态规划、分治、排序、查找等,所以,无论是世界级的大型企业还是几个人的小公司,在面试求职者的时候,往往会考察这些最基础的知识,无论你的研究方向是什么,这些基础知识还是应该熟练掌握的。
本书正是从这些基础知识点出发,讲解了求职过程中常见的数据结构与算法的真题,从而让求职者能轻松应付算法类的笔试面试题目。在写作风格上,推陈出新,对于算法的讲解,不仅使用图文并茂的方式,而且还辅以示例的讲解,目的就是为了使读者更容易理解。为了能够写出精品书籍,我们对每一个技术问题,都反复推敲,与算法精英一起反复论证可行性;对文字,我们咬文嚼字,字斟句酌,所有这些付出,只为让读者能够在读完本书后有所收获。
虽然市面上同类型书籍很多,也都写的不错,但是,我们相信,我们能够写出更适合读者需求的高质量精品书籍。为了能够在有限的篇幅里面尽可能地展现“干货”,我们在题目的选择上也下了很多功夫:首先,通过搜集近3年以来典型IT企业的面试笔试算法真题,包括已经出版的其他著作、技术博客、在线编码平台、刷题网站等,保证所选样本足够大。其次,选择题目的时候,尽可能不选择那种一眼就能知道结果的简单题,也没有选择那种怪题、偏题和很难的题,选题原则是难度适中或者看上去简单但实际容易出错的题目。通过我们的努力,力求所选出来的算法真题能够最大限度地帮助读者。在真题的解析上,采用层层递进的写法,先易后难,层层深入,将问题抽丝剥茧,使得读者能够跟随我们的思路,一步步找到问题的最优解。
写作的过程是一个自我提高、自我认识的过程,很多知识,只有深入理解与剖析后,才能领悟其中的精髓,掌握其中的技巧,程序员求职算法也不例外。本书不仅具备了其他书籍分析透彻,代码清晰合理的优点,还具备以下几个方面的优势:
第一,算法书籍分多种语言版本实现:CC++、Java、C#、Python、PHP、Javascript、Kotlin、Go等,这样,不管读者侧重于哪一种语言,都能够有适合自己的书。本书中如果没有特别强调,代码实现均默认使用Javascript语言。
第二,每个题目除了循序渐进的分析以外,还对方法进行了详细阐述,针对不同方法的时间复杂度与空间复杂度,都进行了详细地分析,除此之外,为了更具说服力,每一种方法几乎都对应有示例(代码可以从https:github.compwstrickFEG-Code下载)讲解辅以说明。
第三,除了对题目的讲解,还有部分触类旁通的题目供读者练习。本书不可能将所有的程序员求职类的数据结构与算法类题目囊括,但是,本书会尽可能地将一些常见的求职类算法题、具有代表性的算法题重点讲解,将其他一些题目以练习题的形式展现在读者面前,以供读者思考与学习。
本书中有部分思想来源于网络上的无名英雄,无法追踪到最原始的出处,在此对这些幕后英雄致以最崇高的敬意。没有学不好的学生,只有教不好的老师,我们希望无论是什么层次的学生,都能毫无障碍地看懂书中所讲内容。如果读者存在求职困惑或是对本书中的内容存在异议,都可以通过yuancoder@foxmail.com联系作者。
猿媛之家
|
|