更新时间:2024-06-27 16:00:17
封面
版权信息
内容简介
前言
第一部分 面试流程
第1章 硅谷公司面试流程
1.1 非技术电话面试
1.2 技术电话面试
1.3 现场面试
第二部分 数据结构
第2章 列表
2.1 列表的基础知识
2.2 实例1:最长连续1的个数
2.3 实例2:二进制相加
2.4 实例3:查询范围和
2.5 实例4:随机索引
2.6 实例5:下一个更大排列
2.7 实例6:验证有效数字
2.8 实例7:递归小数
第3章 堆栈
3.1 堆栈的基础知识
3.2 实例1:通过最小移除操作得到有效的括号
3.3 实例2:函数的专用时间
第4章 队列
4.1 队列的3种实现方式
4.2 实例1:设计循环队列
4.3 实例2:求和大于K的最短非空连续子数组的长度
第5章 优先队列
5.1 优先队列的3种实现方式
5.2 实例1:雇用K个工人的最低成本
5.3 实例2:判断数组是否可以拆分为连续的子序列
第6章 字典
6.1 字典的基础知识
6.2 实例1:和等于K的连续子数组的总数
6.3 实例2:标签中的最大值
6.4 实例3:以平均时间复杂度O(1)实现插入、删除和获取随机值
6.5 实例4:最近最少使用缓存
第7章 集合
7.1 集合的基础知识
7.2 集合的基本操作
第8章 链表
8.1 双指针技术
8.2 实例1:判断链表是否有循环
8.3 实例2:两个链表的交集
8.4 实例3:克隆随机链表
8.5 实例4:反转链表
第9章 二叉树
9.1 层次顺序遍历
9.2 递归方法用于树的遍历
9.3 实例1:二叉树的最低共同祖先
9.4 实例2:序列化和反序列化二叉树
9.5 实例3:求二叉树的最大路径和
9.6 实例4:将二叉树转换为双链表
第10章 其他树结构
10.1 前缀树
10.2 线段树
10.3 二叉索引树
10.4 实例1:范围和的个数
10.5 实例2:计算后面较小数字的个数
第11章 图
11.1 图的表示
11.2 实例1:克隆图
11.3 实例2:图验证树
第三部分 算法
第12章 二分搜索
12.1 实例1:求平方根
12.2 实例2:在旋转排序数组中搜索
12.3 案例3:会议室预订问题
第13章 双指针法
13.1 实例1:稀疏向量的点积
13.2 实例2:最小窗口子字符串
13.3 实例3:间隔列表相交
13.4 实例4:最长连续1的个数
13.5 实例5:查找字符串中的所有字母
第14章 动态规划
14.1 动态规划的基础知识
14.2 实例1:买卖股票的最佳时间
14.3 实例2:硬币找零
14.4 实例3:计算解码方式总数
第15章 深度优先搜索
15.1 深度优先搜索的应用
15.2 实例1:太平洋和大西洋的水流问题
15.3 实例2:预测获胜者
15.4 实例3:表达式加运算符
第16章 回溯
16.1 实例1:数独求解
16.2 实例2:扫地机器人
第17章 广度优先搜索
17.1 广度优先搜索的应用
17.2 实例1:墙和门
17.3 实例2:课程表
17.4 实例3:公交路线
17.5 实例4:判断二分图
17.6 实例5:单词阶梯
第18章 并查集
18.1 并查集的基础知识
18.2 实例:朋友圈
第19章 数据结构与算法面试真题实战
19.1 实例1:文件系统
19.2 实例2:最长有效词