Python 程序员面试算法宝典 PDF 文档

发布于 2024-05-22 15:02:00 字数 4324 浏览 31 评论 0

本书是一本讲解程序员面试笔试算法的书,代码采用 Python 语言编写,书中除了讲解如何解答算法问题以外,还引入了例子辅以说明,让读者更容易理解。

本书几乎将程序员面试笔试过程中算法类真题一网打尽,在题目的广度上,通过各种渠道,搜集了近 3 年来几乎所有 IT 企业面试笔试算法的高频题目,所选择题目均为企业招聘使用题目。在题目的深度上,本书由浅入深,庖丁解牛式地分析每一个题目,并提炼归纳。同时,引入例子与源代码、时间复杂度与空间复杂度的分析,这些内容是其他同类书籍所没有的。本书根据真题所属知识点进行分门别类,结构合理,条理清晰,对于读者进行学习与检索意义重大。

本书可作为计算机相关专业毕业生面试笔试的求职用书,也可以作为本科生、研究生学习数据结构与算法的辅导书籍,同时适合期望在计算机软硬件行业大显身手的计算机爱好者阅读。

目录
面试笔试经验技巧篇
经验技巧 1 如何巧妙地回答面试官的问题
经验技巧 2 如何回答技术性的问题
经验技巧 3 如何回答非技术性问题
经验技巧 4 如何回答快速估算类问题
经验技巧 5 如何回答算法设计问题
经验技巧 6 如何回答系统设计题
经验技巧 7 如何解决求职中的时间冲突问题
经验技巧 8 如果面试问题曾经遇见过,是否要告知面试官
经验技巧 9 被企业拒绝后是否可以再申请
经验技巧 10 如何应对自己不会回答的问题
经验技巧 11 如何应对面试官的“激将法”语言
经验技巧 12 如何处理与面试官持不同观点这个问题
经验技巧 13 关注职场暗语
面试笔试真题解析篇
第 1 章 链表
1.1 如何实现链表的逆序
1.2 如何从无序链表中移除重复项
1.3 如何计算两个单链表所代表的数之和
1.4 如何对链表进行重新排序
1.5 如何找出单链表中的倒数第 k 个元素
1.6 如何检测一个较大的单链表是否有环
1.7 如何把链表相邻元素翻转
1.8 如何把链表以 K 个结点为一组进行翻转
1.9 如何合并两个有序链表
1.10 如何在只给定单链表中某个结点的指针的情况下删除该结点
1.11 如何判断两个单链表(无环)是否交叉
1.12 如何展开链接列表
第 2 章 栈、队列与哈希
2.1 如何实现栈
2.2 如何实现队列
2.3 如何翻转栈的所有元素
2.4 如何根据入栈序列判断可能的 出栈序列
2.5 如何用 O(1)的时间复杂度求栈中最小元素
2.6 如何用两个栈模拟队列操作
2.7 如何设计一个排序系统
2.8 如何实现 LRU 缓存方案
2.9 如何从给定的车票中找出旅程
2.10 如何从数组中找出满足 a+b=c+d 的两个数对
第 3 章 二叉树
3.1 二叉树基础知识
3.2 如何把一个有序整数数组放到二叉树中
3.3 如何从顶部开始逐层打印二叉树结点数据
3.4 如何求一棵二叉树的最大子树和
3.5 如何判断两棵二叉树是否相等
3.6 如何把二叉树转换为双向链表
3.7 如何判断一个数组是否是二元查找树后序遍历的序列
3.8 如何找出排序二叉树上任意两个结点的最近共同父结点
3.9 如何复制二叉树
3.10 如何在二叉树中找出与输入整数相等的所有路径
3.11 如何对二叉树进行镜像反转
3.12 如何在二叉排序树中找出第一个大于中间值的结点
3.13 如何在二叉树中找出路径最大的和
3.14 如何实现反向 DNS 查找缓存
第 4 章 数组
4.1 如何找出数组中唯一的重复元素
4.2 如何查找数组中元素的最大值和最小值
4.3 如何找出旋转数组的最小元素
4.4 如何找出数组中丢失的数
4.5 如何找出数组中出现奇数次的数
4.6 如何找出数组中第 k 小的数
4.7 如何求数组中两个元素的最小距离
4.8 如何求解最小三元组距离
4.9 如何求数组中绝对值最小的数
4.10 如何求数组连续最大和
4.11 如何找出数组中出现 1 次的数
4.12 如何对数组旋转
4.13 如何在不排序的情况下求数组中的中位数
4.14 如何求集合的所有子集
4.15 如何对数组进行循环移位
4.16 如何在有规律的二维数组中进行高效的数据查找
4.17 如何寻找最多的覆盖点
4.18 如何判断请求能否在给定的存储条件下完成
4.19 如何按要求构造新的数组
4.20 如何获取最好的矩阵链相乘方法
4.21 如何求解迷宫问题
4.22 如何从三个有序数组中找出它们的公共元素
4.23 如何求两个有序集合的交集
4.24 如何对有大量重复的数字的数组排序
4.25 如何对任务进行调度
4.26 如何对磁盘分区
第 5 章 字符串
5.1 如何求一个字符串的所有排列
5.2 如何求两个字符串的最长公共子串
5.3 如何对字符串进行反转
5.4 如何判断两个字符串是否为换位字符串
5.5 如何判断两个字符串的包含关系
5.6 如何对由大小写字母组成的字符数组排序
5.7 如何消除字符串的内嵌括号
5.8 如何判断字符串是否是整数
5.9 如何实现字符串的匹配
5.10 如何求字符串里的最长回文子串
5.11 如何按照给定的字母序列对字符数组排序
5.12 如何判断一个字符串是否包含重复字符
5.13 如何找到由其他单词组成的最长单词
5.14 如何统计字符串中连续的重复字符个数
5.15 如何求最长递增子序列的长度
5.16 求一个串中出现的第一个最长重复子串
5.17 如何求解字符串中字典序最大的子序列
5.18 如何判断一个字符串是否由 另外一个字符串旋转得到
5.19 如何求字符串的编辑距离
5.20 如何在二维数组中寻找最短路线
5.21 如何截取包含中文的字符串
5.22 如何求相对路径
5.23 如何查找到达目标词的最短链长度
第 6 章 基本数字运算
6.1 如何判断一个自然数是否是某个数的平方
6.2 如何判断一个数是否为 2 的 n 次方
6.3 如何不使用除法操作符实现两个正整数的除法
6.4 如何只使用+=操作符实现加减乘除运算
6.5 如何根据已知随机数生成函数计算新的随机数
6.6 如何判断 1024!末尾有多少个 0
6.7 如何按要求比较两个数的大小
6.8 如何求有序数列的第 1500 个数的值
6.9 如何把十进制数(long 型)分别以二进制和十六进制形式输出
6.10 如何求二进制数中 1 的个数
6.11 如何找最小的不重复数
6.12 如何计算一个数的 n 次方
6.13 如何在不能使用库函数的条件下计算 n 的平方根
6.14 如何不使用^操作实现异或运算
6.15 如何不使用循环输出 1 到 100
第 7 章 排列组合与概率
7.1 如何求数字的组合
7.2 如何拿到最多金币
7.3 如何求正整数 n 所有可能的整数组合
7.4 如何用一个随机函数得到另外一个随机函数
7.5 如何等概率地从大小为 n 的数组中选取 m 个整数
7.6 如何组合 1,2,5 这三个数使其和为 100
7.7 如何判断还有几盏灯泡亮着
第 8 章 排序
8.1 如何进行选择排序
8.2 如何进行插入排序
8.3 如何进行冒泡排序
8.4 如何进行归并排序
8.5 如何进行快速排序
8.6 如何进行希尔排序
8.7 如何进行堆排序
8.8 如何进行基数排序
第 9 章 大数据
9.1 如何从大量的 url 中找出相同的 url
9.2 如何从大量数据中找出高频词
9.3 如何找出访问百度最多的 IP
9.4 如何在大量的数据中找出不重复的整数
9.5 如何在大量的数据中判断一个数是否存在
9.6 如何查询最热门的查询串
9.7 如何统计不同电话号码的个数
9.8 如何从 5 亿个数中找出中位数
9.9 如何按照 query 的频度排序
9.10 如何找出排名前 500 的数
后折页

下载地址:https://www.wenjiangs.com/wp-content/uploads/2024/01/cfuYLjUAdGbg8ei9.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

daid

文章 0 评论 0

我心依旧

文章 0 评论 0

晒暮凉

文章 0 评论 0

微信用户

文章 0 评论 0

DS

文章 0 评论 0

〆凄凉。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文