go程序员面试算法宝典 pdf_Go程序员面试算法宝典__目录

前言

面试笔试经验技巧篇

经验技巧1 如何巧妙地回答面试官的问题2

经验技巧2 如何回答技术性的问题3

经验技巧3 如何回答非技术性问题5

经验技巧4 如何回答快速估算类问题5

经验技巧5 如何回答算法设计问题6

经验技巧6 如何回答系统设计题9

经验技巧7 如何解决求职中的时间冲突问题12

经验技巧8 如果面试问题曾经遇见过,是否要告知面试官12

经验技巧9 被企业拒绝后是否可以再申请13

经验技巧10 如何应对自己不会回答的问题14

经验技巧11 如何应对面试官的“激将法”14

经验技巧12 如何处理与面试官持不同观点这个问题15

经验技巧13 什么是职场暗语16

面试笔试真题解析篇

第1章 链表21

1.1 如何实现链表的逆序22

1.2 如何从无序链表中移除重复项25

1.3 如何计算两个单链表所代表的数之和29

1.4 如何对链表进行重新排序32

1.5 如何找出单链表中的倒数第k个元素34

1.6 如何检测一个较大的单链表是否有环37

1.7 如何把链表相邻元素翻转39

1.8 如何把链表以k个结点为一组进行翻转41

1.9 如何合并两个有序链表44

1.10 如何在只给定单链表中某个结点指针的情况下删除该结点46

1.11 如何判断两个单链表(无环)是否交叉48

1.12 如何展开链接列表52

第2章 栈、队列与哈希56

2.1 如何实现栈56

2.2 如何实现队列60

2.3 如何翻转栈的所有元素65

2.4 如何根据入栈序列判断可能的出栈序列70

2.5 如何用O(1)的时间复杂度求栈中最小元素73

2.6 如何用两个栈模拟队列操作74

2.7 如何设计一个排序系统76

2.8 如何实现LRU缓存方案77

2.9 如何从给定的车票中找出旅程路线79

2.10 如何从数组中找出满足a+b=c+d的两个数对81

第3章  二叉树83

3.1 二叉树基础知识83

3.2 如何把一个有序整数数组放到二叉树中85

3.3 如何从顶部开始逐层打印二叉树结点数据86

3.4 如何求一棵二叉树的最大子树和89

3.5 如何判断两棵二叉树是否相等91

3.6 如何把二叉树转换为双向链表92

3.7 如何判断一个数组是否是二元查找树后序遍历的序列94

3.8 如何找出排序二叉树上任意两个结点的最近共同父结点96

3.9 如何复制二叉树102

3.10 如何在二叉树中找出与输入整数相等的所有路径103

3.11 如何对二叉树进行镜像反转105

3.12 如何在二叉排序树中找出第一个大于中间值的结点106

3.13 如何在二叉树中找出路径最大的和108

3.14 如何实现反向DNS查找缓存111

第4章 数组114

4.1 如何找出数组中唯一的重复元素114

4.2 如何查找数组中元素的最大值和最小值121

4.3 如何找出旋转数组的最小元素124

4.4 如何找出数组中丢失的数128

4.5 如何找出数组中出现奇数次的数130

4.6 如何找出数组中第k小的数133

4.7 如何求数组中两个元素的最小距离137

4.8 如何求解最小三元组距离139

4.9 如何求数组中绝对值最小的数144

4.10 如何求数组连续最大和147

4.11 如何找出数组中出现1次的数152

4.12 如何旋转数组154

4.13 如何在不排序的情况下求数组中的中位数156

4.14 如何求集合的所有子集158

4.15 如何对数组进行循环移位161

4.16 如何在有规律的二维数组中进行高效的数据查找164

4.17 如何寻找最多的覆盖点166

4.18 如何判断请求能否在给定的存储条件下完成167

4.19 如何按要求构造新的数组169

4.20 如何获取最好的矩阵链相乘方法171

4.21 如何求解迷宫问题173

4.22 如何从三个有序数组中找出它们的公共元素176

4.23 如何求两个有序集合的交集177

4.24 如何对有大量重复的数字的数组排序181

4.25 如何对任务进行调度185

4.26 如何对磁盘分区187

第5章 字符串189

5.1 如何求一个字符串的所有排列189

5.2 如何求两个字符串的最长公共子串194

5.3 如何对字符串进行反转198

5.4 如何判断两个字符串是否为换位字符串201

5.5 如何判断两个字符串的包含关系202

5.6 如何对由大小写字母组成的字符数组排序206

5.7 如何消除字符串的内嵌括号207

5.8 如何判断字符串是否是整数208

5.9 如何实现字符串的匹配212

5.10 如何求字符串里的最长回文子串215

5.11 如何按照给定的字母序列对字符数组排序222

5.12 如何判断一个字符串是否包含重复字符225

5.13 如何找到由其他单词组成的最长单词227

5.14 如何统计字符串中连续的重复字符个数229

5.15 如何求最长递增子序列的长度230

5.16 求一个串中出现的第一个最长重复子串232

5.17 如何求解字符串中字典序最大的子序列233

5.18 如何判断一个字符串是否由另外一个字符串旋转得到236

5.19 如何求字符串的编辑距离238

5.20 如何在二维数组中寻找最短路线240

5.21 如何截取包含中文的字符串244

5.22 如何求相对路径244

5.23 如何查找到达目标词的最短链长度246

第6章 基本数字运算249

6.1 如何判断一个自然数是否是某个数的平方249

6.2 如何判断一个数是否为2的n次方252

6.3 如何不使用除法操作符实现两个正整数的除法253

6.4 如何只使用++操作符实现加减乘除运算258

6.5 如何根据已知随机数生成函数计算新的随机数261

6.6 如何判断1024!末尾有多少个0262

6.7 如何按要求比较两个数的大小263

6.8 如何求有序数列的第1500个数的值264

6.9 如何把十进制数(long型)分别以二进制和十六进制形式输出266

6.10 如何求二进制数中1的个数267

6.11 如何找最小的不重复数269

6.12 如何计算一个数的n次方273

6.13 如何在不能使用库函数的条件下计算n的算术平方根275

6.14 如何不使用^操作实现异或运算276

6.15 如何不使用循环输出1到100277

第7章 排列组合与概率279

7.1 如何求数字的组合279

7.2 如何拿到最多金币282

7.3 如何求正整数n所有可能的整数组合283

7.4 如何用一个随机函数得到另外一个随机函数285

7.5 如何等概率地从大小为n的数组中选取m个整数286

7.6 如何组合1,2,5这三个数使其和为100288

7.7 如何判断还有几盏灯泡还亮着289

第8章 排序292

8.1 如何进行选择排序292

8.2 如何进行插入排序293

8.3 如何进行冒泡排序294

8.4 如何进行归并排序295

8.5 如何进行快速排序297

8.6 如何进行希尔排序300

8.7 如何进行堆排序302

8.8 各种排序算法有什么优劣303

第9章 大数据305

9.1 如何从大量的url中找出相同的url305

9.2 如何从大量数据中找出高频词306

9.3 如何找出访问百度最多的IP307

9.4 如何在大量的数据中找出不重复的整数307

9.5 如何在大量的数据中判断一个数是否存在308

9.6 如何查询最热门的查询串309

9.7 如何统计不同电话号码的个数310

9.8 如何从5亿个数中找出中位数311

9.9 如何按照query的频度排序312

9.10 如何找出排名前500的数313

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值