热搜关键词: matlab人工智能算法嵌入式雷达电机驱动

pdf

剑指Offer:名企面试官精讲典型编程题 (何海涛)

  • 1星
  • 2024-01-01
  • 62.74MB
  • 需要2积分
  • 4次下载
标签: 面试

面试

全书分为7章,主要包括:

1、面试的流程:讨论面试流程中每一环节需要注意的问题;

2、面试需要的基础知识:从编程语言、数据结构及算法三方面总结了程序员面试的知识点;

3、高质量的代码:讨论影响代码质量的的3个要素(规范性、完整性和鲁棒性),强调高质量的代码除了能够完成基本的功能之外,还能考虑到特殊情况并对非法输入进行合理的处理;

4、解决面试题的思路:总结在编程面试中解决难题的常用思路,如果在面试过程中遇到了复杂的难题,应聘者可以利用画图、举例和分解复杂问题3种方法化繁为简,先形成清晰的思路再动手编程;

5、优化时间和空间效率:介绍如何优化代码的时间效率和空间效率,读完这一章读者将学会常用的优化时间效率及空间换时间的常用算法,从而在面试中找到最优的解法;

6、面试中的各种能力:本章总结应聘者在面试过程中如何表现学习能力和沟通能力,并通过具体的面试题讨论如何培养知识迁移能力、抽象建模能力和发散思维能力;

7、两个面试案例:这两个案例总结了应聘者在面试过程中哪些举动是不好的行为,而哪些表现又是面试官所期待的行为。

本书适合即将走向工作岗位的大学生阅读,也适合作为正在应聘软件行业的相关就业人员和计算机爱好者的参考书。

本书剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。

第1章  面试的流程  1

1.1  面试官谈面试  1

1.2  面试的三种形式  2

1.2.1  电话面试  2

1.2.2  共享桌面远程面试  3

1.2.3  现场面试  4

1.3  面试的三个环节  5

1.3.1  行为面试环节  5

应聘者的项目经验  6

应聘者掌握的技能  7

回答“为什么跳槽”  8

1.3.2  技术面试环节  10

扎实的基础知识  10

高质量的代码  11

清晰的思路  14

优化效率的能力  15

优秀的综合能力  16

1.3.3  应聘者提问环节  17

1.4  本章小结  18

第2章  面试需要的基础知识  20

2.1  面试官谈基础知识  20

2.2  编程语言  22

2.2.1  C++  22

面试题1:赋值运算符函数  24

经典的解法,适用于初级程序员  25

考虑异常安全性的解法,高级程序员必备  26

2.2.2  C#  27

面试题2:实现Singleton模式  31

不好的解法一:只适用于单线程  31

不好的解法二:可用于多线程但效率不高  32

可行的解法:同步锁前后两次判断  33

推荐的解法一:利用静态构造函数  34

推荐的解法二:按需创建实例  34

解法比较  35

2.3  数据结构  36

2.3.1  数组  36

面试题3:二维数组中的查找  38

2.3.2  字符串  42

面试题4:替换空格  44

O(n2)的解法,不足以拿到Offer  45

O(n)的解法,搞定Offer就靠它  46

2.3.3  链表  49

面试题5:从尾到头打印链表  51

2.3.4  树  53

面试题6:重建二叉树  55

2.3.5  栈和队列  58

面试题7:用两个栈实现队列  59

2.4  算法和数据操作  62

2.4.1  查找和排序  63

面试题8:旋转数组的最小数字  66

2.4.2  递归和循环  71

面试题9:斐波那契数列  73

效率很低的解法,面试官不会喜欢  73

面试官期待的实用解法  74

O(logn)但不够实用的解法  74

解法比较  75

2.4.3  位运算  77

面试题10:二进制中1的个数  78

可能引起死循环的解法  79

常规解法  79

能给面试官带来惊喜的解法  80

2.5  本章小结  82

第3章  高质量的代码  84

3.1  面试官谈代码质量  84

3.2  代码的规范性  86

3.3  代码的完整性  87

从3方面确保代码的完整性  87

3种错误处理的方法  88

面试题11:数值的整数次方  90

自以为题目简单的解法  90

全面但不够高效的解法,离Offer已经很近了  90

全面又高效的解法,确保能拿到Offer  92

面试题12:打印1到最大的n位数  94

跳进面试官陷阱  94

在字符串上模拟数字加法  94

把问题转换成数字排列  97

面试题13:在O(1)时间删除链表结点  99

面试题14:调整数组顺序使奇数位于偶数前面  102

只完成基本功能的解法,仅适用于初级程序员  102

考虑可扩展性的解法,能秒杀Offer  104

3.4  代码的鲁棒性  106

面试题15:链表中倒数第k个结点  107

面试题16:反转链表  112

面试题17:合并两个排序的链表  114

面试题18:树的子结构  117

3.5  本章小结  121

第4章  解决面试题的思路  123

4.1  面试官谈面试思路  123

面试题19:二叉树的镜像  125

4.2  画图让抽象问题形象化  125

面试题20:顺时针打印矩阵  127

4.3  举例让抽象问题具体化  131

面试题21:包含min函数的栈  132

面试题22:栈的压入、弹出序列  134

面试题23:从上往下打印二叉树  137

面试题24:二叉搜索树的后序遍历序列  140

面试题25:二叉树中和为某一值的路径  143

4.4  分解让复杂问题简单化  146

面试题26:复杂链表的复制  147

面试题27:二叉搜索树与双向链表  151

面试题28:字符串的排列  154

4.5  本章小结  158

第5章  优化时间和空间效率  160

5.1  面试官谈效率  160

5.2  时间效率  162

面试题29:数组中出现次数超过一半的数字  163

基于Partition函数的O(n)算法  163

利用数组特点的O(n)算法  165

解法比较  166

面试题30:最小的k个数  167

O(n)的算法,只当可以修改输入数组时可用  167

O(nlogk)的算法,适合处理海量数据  168

解法比较  169

面试题31:连续子数组的最大和  171

举例分析数组的规律  171

应用动态规划法  173

面试题32:从1到n整数中1出现的次数  174

不考虑效率的解法,想拿Offer有点难  174

明显提高效率的解法,让面试官耳目一新  175

面试题33:把数组排成最小的数  177

5.3  时间效率与空间效率的平衡  181

面试题34:丑数  182

逐个判断整数是不是丑数的解法  182

创建数组保存已经找到的丑数的解法  183

面试题35:第一个只出现一次的字符  186

面试题36:数组中的逆序对  189

面试题37:两个链表的第一个公共结点  193

5.4  本章小结  196

第6章  面试中的各项能力  198

6.1  面试官谈能力  198

6.2  沟通能力和学习能力  200

沟通能力  200

学习能力  200

善于学习、沟通的人也善于提问  201

6.3  知识迁移能力  203

面试题38:数字在排序数组中出现的次数  204

面试题39:二叉树的深度  207

重复遍历结点的解法,不足以打动面试官  209

只遍历结点一次的解法,正是面试官喜欢的  209

面试题40:数组中只出现一次的数字  211

面试题41:和为s的两个数字VS和为s的连续正数序列  214

面试题42:翻转单词顺序VS左旋转字符串  218

6.4  抽象建模能力  222

面试题43:n个骰子的点数  223

基于递归求骰子点数,时间效率不够高  223

基于循环求骰子点数,时间性能好  224

面试题44:扑克牌的顺子  226

面试题45:圆圈中最后剩下的数字  228

经典的解法,用循环链表模拟圆圈  229

创新的解法,拿到Offer不在话下  230

6.5  发散思维能力  232

面试题46:求1+2+…+n  233

利用构造函数求解  234

利用虚函数求解  234

利用函数指针求解  235

利用模板类型求解  236

面试题47:不用加减乘除做加法  237

面试题48:不能被继承的类  239

常规的解法:把构造函数设为私有函数  239

新奇的解法:利用虚拟继承  240

6.6  本章小结  241

第7章  两个面试案例  243

7.1  案例一:(面试题49)把字符串转换成整数  244

7.2  案例二:(面试题50)树中两个结点的最低公共祖先  252

展开预览

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

  • MC9S12XDP512中断问题
    本人用MC9S12XDP512做了一块电路板,一开总中断,(没开任何中断)程序就跑到0000位置,不再执行下面的程序,同样的程序在开发板上能正常运行,求助怎么回事,本人猜测是晶振复位,求助解决方案
  • 2440,bootloader问题
    我的bsp里面有stepldr和eboot,我想让eboot跑起来,但把stepldr.nb1烧写到flash中后,在dnw上显示的却是乱码!!!!这个是串口的初始代码:void Uart_Init(void){int i;rUFCON1 = 0x0;// FIFO disablerUMCON1 = 0x0;// AFC disablerULCON1 = 0x3;// Normal,No pari
  • 通过zigbee传输摄像头拍摄的图片
    要做一个监控系统,是通过zigbee讲摄像头数据发送到主控板上的 那摄像头和zigbee之间的通信怎么实验?摄像头用哪种好 图像不要太大 100k以内最好 急啊 求各位大神指导
  • E103-W01-BF 开箱及简单介绍
    E103-W01-BF 到了,准备开一下箱,看看它有什么功能。申请这个模块的原因是以前没见过这东西,来看看这个模块是干什么用的。包装里一共有一个模块、两排排针、两个跳线帽。阅读产品简介发现E103-W01-BF 是用于测试 E103-W01 串口 WiFi 模块的测试工具,这个模块采用 USB 接口,可以快速测试 E103-W01 相关特性与功能,同时可以给E103-W01烧录固件。两个跳线帽的功
  • 短信猫怎么发送wap push信息?
    短信猫怎么发送wap push信息?if fnWapPushCvt(Pchar('ni hao'), Pchar('wap.english.com'), szOut) = 0 thenbegin//szHeader := PhoneNo + ',' + id + ',' + '0' + ',' +//'13123456789' + ',' + '1' + ',' + '1'; //bugszHea
  • flash读写
  • 关于5529触摸式电容
  • SensorTile.box试用(开箱及手机APP连接)
  • zigbee低功耗
  • 晚上雪花飘飘的红外摄像机的原因在这里

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×