《进军硅谷 程序员面试揭秘 技术移民参考手册》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:陈东锋著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:9787121225666
  • 页数:304 页
图书介绍:本书精选并剖析具有代表性的256道热门硅谷公司的程序员面试题,从面试技巧、基础知识、解题思路和效率优化等方面总结出面试和解题规律。全书分为12章,主要包含常见数据结构、算法、大数据、系统设计和面向对象语言等方面的题目和解题思路,并提炼出解题7个步骤:复述、提问、举例、观察、设计、编码和测试。本书精选出的面试题是硅谷热门公司的高频题,可以用来做面试前的练习。对于每道题,本书尽可能给出多种解法,对日常工作中遇到问题时有一定启发性。

第一部分 硅谷求职 3

第1章 硅谷公司 3

1.1 硅谷简介 3

1.2 传奇旗帜 7

1.2.1 微软 8

1.2.2 谷歌 9

1.2.3 亚马逊 10

1.2.4 Twitter 12

1.2.5 Epic 12

1.3 技术移民 13

1.3.1 签证和绿卡 14

1.3.2 税率和生活 16

第2章 求职准备 19

2.1 职位选择 21

2.2 公司选择 22

2.3 人际关系 24

2.4 求职渠道 27

第3章 简历 29

3.1 简历特点 30

3.2 简历结构 33

3.3 简历优化 35

第4章 面试 39

4.1 面试流程 40

4.2 编程面试 42

4.3 注意事项 43

第5章 聘书与职业发展 47

5.1 聘书 48

5.1.1 聘书要素 48

5.1.2 决策因子 49

5.1.3 薪酬谈判 52

5.1.4 接受、延期或婉拒 54

5.2 职业发展 55

第二部分 数据结构 59

第6章 数组 59

面试题1:两数之和Ⅰ☆☆ 59

面试题2:两数之和Ⅱ☆☆☆ 61

面试题3:两数之和Ⅲ☆☆☆☆ 62

面试题4:数组旋转☆☆☆ 64

面试题5:最大下标距离☆☆☆☆ 65

面试题6:重叠区间个数☆☆ 67

面试题7:插入区间☆☆☆ 69

面试题8:合并区间☆☆☆☆ 71

面试题9:数组配对☆☆☆ 72

面试题10:数位重组☆☆☆ 73

面试题11:产生随机数☆☆ 75

面试题12:Top KⅠ☆☆☆ 76

面试题13:Top KⅡ☆☆☆☆ 79

面试题14:两数组第k个值☆☆☆☆☆ 80

面试题15:两数组中值☆☆☆☆☆ 82

面试题16:旋转数组最小值☆☆☆ 84

面试题17:旋转数组搜索☆☆☆ 85

面试题18:首个正数☆☆☆☆ 86

面试题19:合并有序数组☆☆ 88

面试题20:三角形☆☆ 89

面试题21:二维数组搜索☆☆☆ 90

面试题22:区间搜索☆☆☆☆ 92

面试题23:插入位置☆☆ 94

面试题24:矩阵清零☆☆☆ 95

面试题25:螺旋矩阵☆☆☆☆ 98

第7章 链表 101

面试题26:合并链表☆☆ 102

面试题27:环的长度☆☆☆ 103

面试题28:反转链表☆☆ 105

面试题29:分组反转链表☆☆☆☆ 109

面试题30:两数相加☆☆☆ 110

面试题31:链表分区☆☆☆ 112

面试题32:链表去重☆ 114

第8章 树 117

面试题33:二叉搜索树转为双向链表☆☆☆☆ 118

面试题34:最小公共祖先Ⅰ☆☆ 120

面试题35:最小公共祖先Ⅱ☆☆☆ 121

面试题36:最小公共祖先Ⅲ☆☆☆☆ 124

面试题37:最小公共祖先Ⅳ☆☆☆☆ 125

面试题38:路径和Ⅰ☆☆ 128

面试题39:路径和Ⅱ☆☆☆☆ 129

面试题40:平衡二叉树☆☆☆☆ 131

面试题41:树的镜像☆☆ 132

面试题42:中序下个节 点☆☆☆ 134

面试题43:二叉搜索树近值☆☆☆ 135

面试题44:二叉搜索树KNN☆☆☆☆ 136

面试题45:实现二叉搜索树迭代器☆☆☆☆ 138

面试题46:充实横向指针☆☆☆ 140

面试题47:恢复二叉搜索树☆☆☆☆ 142

面试题48:按层遍历二叉树☆☆☆ 144

面试题49:二叉树最大路径和☆☆☆☆ 145

第9章 字符串 148

面试题50:字符判重☆☆☆ 148

面试题51:产生括号☆☆☆☆ 150

面试题52:提取单词Ⅰ☆☆☆☆ 151

面试题53:提取单词Ⅱ☆☆☆☆ 153

面试题54:字符交替☆☆☆ 154

面试题55:字符串相乘☆☆☆☆ 155

面试题56:数字验证☆☆☆ 157

面试题57:字符串转为十进制数☆☆ 160

面试题58:提取IP地址☆☆☆ 161

面试题59:正则匹配☆☆☆☆☆ 163

第三部分 算法 167

第10章 俩指针 167

面试题60:有序数组去重☆ 167

面试题61:三数之和☆☆☆ 169

面试题62:股票买卖☆☆ 171

面试题63:三色排序☆☆☆☆ 172

面试题64:蛙跳☆☆☆ 174

面试题65:容器盛水Ⅰ☆☆☆ 176

面试题66:容器盛水Ⅱ☆☆☆☆ 177

面试题67:数组分水岭☆☆☆ 179

第11章 动态规划 181

面试题68:最长递增子序列☆☆☆☆ 182

面试题69:最小化数组乘积☆☆☆☆ 183

面试题70:股票买卖Ⅱ☆☆☆☆ 185

面试题71:数组最大和☆☆☆ 186

面试题72:二维数组最小路径和☆☆☆ 187

面试题73:三角形最小路径☆☆☆ 188

面试题74:爬楼梯☆☆ 189

面试题75:迷宫路径数☆☆ 190

面试题76:刷房子☆☆☆ 192

面试题77:数字解码☆☆☆ 193

面试题78:子串个数☆☆☆☆ 194

面试题79:编辑距离☆☆☆☆ 196

面试题80:交替字符串☆☆☆☆☆ 197

面试题81:最长回文子串☆☆☆☆☆ 198

面试题82:回文分割☆☆☆☆ 199

面试题83:最大公共子串☆☆☆☆ 201

面试题84:字符串洗牌☆☆☆☆☆ 202

第12章 优先遍历 205

面试题85:填充图像☆☆☆☆ 205

面试题86:封闭区间个数☆☆☆☆ 206

面试题87:填充封闭区间☆☆☆☆☆ 208

面试题88:单词查找☆☆☆ 210

面试题89:单词变换☆☆☆☆ 211

面试题90:单词替换规则☆☆☆☆ 213

面试题91:有向图遍历☆☆☆☆ 215

第13章 哈希 217

面试题92:最长连续序列☆☆☆☆ 217

面试题93:变位词☆☆☆ 218

面试题94:最长不同字符的子串☆☆☆☆ 220

面试题95:最小字符窗口☆☆☆☆ 221

面试题96:单词拼接☆☆☆☆☆ 223

面试题97:常数时间插入删除查找☆☆☆ 224

面试题98:对数时间范围查询☆☆☆☆ 225

面试题99:实现LRU缓存☆☆☆☆ 226

面试题100:经过最多点的直线☆☆☆ 229

第14章 堆栈 232

面试题101:局部最大值☆☆☆ 232

面试题102:数据流最大值☆☆☆☆ 234

面试题103:最大四方形☆☆☆☆☆ 235

面试题104:合并多个有序链表☆☆☆☆ 239

面试题105:产生逆波兰式☆☆☆ 240

面试题106:逆波兰式计算☆☆☆ 241

面试题107:简化文件路径☆☆☆ 243

面试题108:括号验证☆☆ 244

面试题109:最长有效括号☆☆☆ 245

面试题110:设计Min栈☆☆☆☆ 247

面试题111:中序遍历☆☆☆ 248

面试题112:打印路径☆☆☆☆ 249

面试题113:二叉搜索树两点之和☆☆☆☆ 251

面试题114:矩阵Top K☆☆☆☆ 253

第15章 排列组合 256

面试题115:翻译手机号码☆☆☆ 256

面试题116:数组签名☆☆☆☆ 258

面试题117:组合和☆☆☆ 259

面试题118:子集合☆☆☆ 262

面试题119:全排列☆☆☆ 264

面试题120:下一个排列☆☆☆☆☆ 266

面试题121:N皇后☆☆☆☆ 268

第四部分 综合面试题 273

第16章 数学 273

面试题122:Fibonacci数☆ 273

面试题123:求幂☆☆☆ 274

面试题124:求开方☆☆☆☆ 275

面试题125:随机数产生器☆☆☆☆☆ 276

面试题126:找出明星☆☆☆ 277

面试题127:聚合数☆☆☆ 278

面试题128:根据概率分布产生随机数☆☆☆☆ 279

面试题129:随机采样☆☆☆ 280

面试题130:数组元素乘积☆☆☆ 281

面试题131:访问计数☆☆☆ 282

第17章 位操作 283

面试题132:isPowerOf2()☆☆ 283

面试题133:isPowerOf4()☆☆☆☆ 284

面试题134:两数相除☆☆☆☆ 284

面试题135:不用加减乘除做加法☆☆☆ 285

面试题136:实现BitSet类☆☆☆ 286

面试题137:爬楼梯Ⅱ☆☆☆ 287

面试题138:只出现一次的数字☆☆ 288

第18章 面向对象 289

面试题139:实现迭代器peek()☆☆☆ 289

面试题140:实现复杂的迭代器☆☆☆☆ 290

面试题141:实现BlockingQueue☆☆☆ 292

面试题142:Java字节 码编入☆☆ 293

面试题143:依赖注入☆☆ 294

第19章 杂项 295

面试题144:垃圾回收机制☆☆☆ 295

面试题145:程序崩溃☆☆☆☆ 296

面试题146:实现任意读☆☆☆☆ 297

面试题147:实现读一行☆☆☆ 298

面试题148:统计电话号码个数☆☆☆ 299

面试题149:海量数据高频词☆☆☆ 300

面试题150:多台机器的中值☆☆☆☆ 300

附录A 数据结构与算法 302

附录B 海量数据结构 303