程序员面试金典总结

您所在的位置:网站首页 黑正方形字符 程序员面试金典总结

程序员面试金典总结

2023-04-27 14:22| 来源: 网络整理| 查看: 265

程序员面试金典总结 - leetcode 程序员面试金典系列

程序员面试金典系列完结撒花!! 🎉🎉

本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考

总的来说, 写这个系列耗费了我不少精力, 不过我也很开心能和大家分享, 真心希望能对大家有所帮助, 也希望大家能够多多点赞转发和分享, 让更多人看到, 谢谢~

接下来我需要休整几周来准备新的系列了, 开始后还是老样子, 每周日 18:45 更新, 大家敬请期待哦! 😝

P.S. 公众号 算法精选 里新加了一个暗号 面试金典总结! 关注公众号 算法精选 后, 在聊天框中回复 面试金典总结 就能快速定位到这篇文章啦, 大家可以试试哦~

目录 目录 字符串 程序员面试金典 - 面试题 01.01. 判定字符是否唯一 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排 程序员面试金典 - 面试题 01.03. URL 化 程序员面试金典 - 面试题 01.04. 回文排列 程序员面试金典 - 面试题 01.05. 一次编辑 程序员面试金典 - 面试题 01.06. 字符串压缩 程序员面试金典 - 面试题 01.09. 字符串轮转 程序员面试金典 - 面试题 10.02. 变位词组 程序员面试金典 - 面试题 16.02. 单词频率 程序员面试金典 - 面试题 16.08. 整数的英语表示 程序员面试金典 - 面试题 16.18. 模式匹配 程序员面试金典 - 面试题 17.07. 婴儿名字 程序员面试金典 - 面试题 17.11. 单词距离 程序员面试金典 - 面试题 17.17. 多次搜索 程序员面试金典 - 面试题 17.18. 最短超串 程序员面试金典 - 面试题 17.22. 单词转换 程序员面试金典 - 面试题 17.26. 稀疏相似度 数字/数组 程序员面试金典 - 面试题 08.03. 魔术索引 程序员面试金典 - 面试题 10.01. 合并排序的数组 程序员面试金典 - 面试题 10.03. 搜索旋转数组 程序员面试金典 - 面试题 10.05. 稀疏数组搜索 程序员面试金典 - 面试题 10.11. 峰与谷 程序员面试金典 - 面试题 16.05. 阶乘尾数 程序员面试金典 - 面试题 16.06. 最小差 程序员面试金典 - 面试题 16.10. 生存人数 程序员面试金典 - 面试题 16.11. 跳水板 程序员面试金典 - 面试题 16.15. 珠玑妙算 程序员面试金典 - 面试题 16.16. 部分排序 程序员面试金典 - 面试题 16.21. 交换和 程序员面试金典 - 面试题 16.24. 数对和 程序员面试金典 - 面试题 17.04. 消失的数字 程序员面试金典 - 面试题 17.05. 字母与数字 程序员面试金典 - 面试题 17.06. 2 出现的次数 程序员面试金典 - 面试题 17.08. 马戏团人塔 程序员面试金典 - 面试题 17.09. 第 k 个数 程序员面试金典 - 面试题 17.10. 主要元素 程序员面试金典 - 面试题 17.14. 最小 K 个数 程序员面试金典 - 面试题 17.19. 消失的两个数字 程序员面试金典 - 面试题 17.20. 连续中值 程序员面试金典 - 面试题 17.21. 直方图的水量 位运算 程序员面试金典 - 面试题 05.01. 插入 程序员面试金典 - 面试题 05.02. 二进制数转字符串 程序员面试金典 - 面试题 05.03. 翻转数位 程序员面试金典 - 面试题 05.04. 下一个数 程序员面试金典 - 面试题 05.06. 整数转换 程序员面试金典 - 面试题 05.07. 配对交换 程序员面试金典 - 面试题 05.08. 绘制直线 程序员面试金典 - 面试题 16.01. 交换数字 程序员面试金典 - 面试题 16.07. 最大数值 程序员面试金典 - 面试题 16.09. 运算 程序员面试金典 - 面试题 17.01. 不用加号的加法 链表 程序员面试金典 - 面试题 02.01. 移除重复节点 程序员面试金典 - 面试题 02.02. 返回倒数第 k 个节点 程序员面试金典 - 面试题 02.03. 删除中间节点 程序员面试金典 - 面试题 02.04. 分割链表 程序员面试金典 - 面试题 02.05. 链表求和 程序员面试金典 - 面试题 02.06. 回文链表 程序员面试金典 - 面试题 02.07. 链表相交 程序员面试金典 - 面试题 02.08. 环路检测 程序员面试金典 - 面试题 16.25. LRU 缓存 程序员面试金典 - 面试题 17.12. BiNode 栈/队列 程序员面试金典 - 面试题 03.01. 三合一 程序员面试金典 - 面试题 03.02. 栈的最小值 程序员面试金典 - 面试题 03.03. 堆盘子 程序员面试金典 - 面试题 03.04. 化栈为队 程序员面试金典 - 面试题 03.05. 栈排序 程序员面试金典 - 面试题 03.06. 动物收容所 程序员面试金典 - 面试题 16.26. 计算器 树 程序员面试金典 - 面试题 04.01. 节点间通路 程序员面试金典 - 面试题 04.02. 最小高度树 程序员面试金典 - 面试题 04.03. 特定深度节点链表 程序员面试金典 - 面试题 04.04. 检查平衡性 程序员面试金典 - 面试题 04.05. 合法二叉搜索树 程序员面试金典 - 面试题 04.06. 后继者 程序员面试金典 - 面试题 04.08. 首个共同祖先 程序员面试金典 - 面试题 04.09. 二叉搜索树序列 程序员面试金典 - 面试题 04.10. 检查子树 程序员面试金典 - 面试题 04.12. 求和路径 程序员面试金典 - 面试题 10.10. 数字流的秩 图 程序员面试金典 - 面试题 01.07. 旋转矩阵 程序员面试金典 - 面试题 01.08. 零矩阵 程序员面试金典 - 面试题 08.10. 颜色填充 程序员面试金典 - 面试题 10.09. 排序矩阵查找 程序员面试金典 - 面试题 16.03. 交点 程序员面试金典 - 面试题 16.04. 井字游戏 程序员面试金典 - 面试题 16.13. 平分正方形 程序员面试金典 - 面试题 16.14. 最佳直线 程序员面试金典 - 面试题 16.19. 水域大小 程序员面试金典 - 面试题 16.20. T9 键盘 程序员面试金典 - 面试题 16.22. 兰顿蚂蚁 程序员面试金典 - 面试题 17.23. 最大黑方阵 程序员面试金典 - 面试题 17.24. 最大子矩阵 程序员面试金典 - 面试题 17.25. 单词矩阵 递归回溯 程序员面试金典 - 面试题 08.04. 幂集 程序员面试金典 - 面试题 08.05. 递归乘法 程序员面试金典 - 面试题 08.06. 汉诺塔问题 程序员面试金典 - 面试题 08.07. 无重复字符串的排列组合 程序员面试金典 - 面试题 08.08. 有重复字符串的排列组合 程序员面试金典 - 面试题 08.09. 括号 程序员面试金典 - 面试题 08.12. 八皇后 动态规划/记忆化搜索 程序员面试金典 - 面试题 08.01. 三步问题 程序员面试金典 - 面试题 08.02. 迷路的机器人 程序员面试金典 - 面试题 08.11. 硬币 程序员面试金典 - 面试题 08.13. 堆箱子 程序员面试金典 - 面试题 08.14. 布尔运算 程序员面试金典 - 面试题 16.17. 连续数列 程序员面试金典 - 面试题 17.13. 恢复空格 程序员面试金典 - 面试题 17.15. 最长单词 程序员面试金典 - 面试题 17.16. 按摩师 字符串 程序员面试金典 - 面试题 01.01. 判定字符是否唯一 位图代替集合判断是否重复 程序员面试金典 - 面试题 01.02. 判定是否互为字符重排 单计数字典 程序员面试金典 - 面试题 01.03. URL 化 字符数组预留空位, 然后逆序遍历并替换 程序员面试金典 - 面试题 01.04. 回文排列 字符计数字典, 保证奇数数目的字符种类数不超过 1 程序员面试金典 - 面试题 01.05. 一次编辑 先判断长度差, 然后双指针比较, 分三种情况 程序员面试金典 - 面试题 01.06. 字符串压缩 利用字符串计数简单模拟 程序员面试金典 - 面试题 01.09. 字符串轮转 先检查长度, 然后拼接 s1, 判断 s2 是否是其子串 程序员面试金典 - 面试题 10.02. 变位词组 排序后字符串作为 key 程序员面试金典 - 面试题 16.02. 单词频率 计数字典 程序员面试金典 - 面试题 16.08. 整数的英语表示 数字->单词映射字典 + 转换 3 位一组的数字 程序员面试金典 - 面试题 16.18. 模式匹配 处理特殊情况 -> 遍历字符 a 映射后的字符串的所有可能长度 程序员面试金典 - 面试题 17.07. 婴儿名字 并查集 + 保证祖先字典序最小 程序员面试金典 - 面试题 17.11. 单词距离 方法 1: 单次遍历 + 维护两个最后下标 方法 2: 下标字典 + 双指针 程序员面试金典 - 面试题 17.17. 多次搜索 方法 1: 语言自带 find 方法 2: 字典树存 smalls + 遍历 big 的每个起点 程序员面试金典 - 面试题 17.18. 最短超串 滑动窗口 + 计数字典 + 尚未匹配个数 程序员面试金典 - 面试题 17.22. 单词转换 BFS + 找所有邻居 + 维护前一单词到当前单词的映射字典 程序员面试金典 - 面试题 17.26. 稀疏相似度 {单词:文档 id 列表}倒排索引字典 + 只求有共同单词的文档的相似度 数字/数组 程序员面试金典 - 面试题 08.03. 魔术索引 顺序遍历, 值大于下标时跳转 程序员面试金典 - 面试题 10.01. 合并排序的数组 多指针 + 从后向前归并排序 程序员面试金典 - 面试题 10.03. 搜索旋转数组 找旋转点 -> 两次二分查找 程序员面试金典 - 面试题 10.05. 稀疏数组搜索 递归二分查找 程序员面试金典 - 面试题 10.11. 峰与谷 偶峰奇谷, 不满足时交换 程序员面试金典 - 面试题 16.05. 阶乘尾数 找因子 5 的个数 程序员面试金典 - 面试题 16.06. 最小差 排序 -> 二分查找 程序员面试金典 - 面试题 16.10. 生存人数 差分数组 + 下标转换 程序员面试金典 - 面试题 16.11. 跳水板 枚举长木板个数 程序员面试金典 - 面试题 16.15. 珠玑妙算 计算完全正确的 -> 排除它们再计算其他的 程序员面试金典 - 面试题 16.16. 部分排序 两次遍历找中间部分的左右边界 程序员面试金典 - 面试题 16.21. 交换和 计算数组和差值 -> 转集合并遍历 程序员面试金典 - 面试题 16.24. 数对和 计数字典 + 注意两个数字相等的特殊情况 程序员面试金典 - 面试题 17.04. 消失的数字 前 n 项和 - 数组总和 程序员面试金典 - 面试题 17.05. 字母与数字 前缀差值计数 + 首个终点下标字典 程序员面试金典 - 面试题 17.06. 2 出现的次数 判断每一位: 分大等小三情况 + 左右部分计数相乘 程序员面试金典 - 面试题 17.08. 马戏团人塔 身高升序体重降序 -> 求最长递增子序列 程序员面试金典 - 面试题 17.09. 第 k 个数 方法 1: 最小堆 + 集合 方法 2: 三指针 + 有序序列归并 程序员面试金典 - 面试题 17.10. 主要元素 投票法: 维护主要元素 + 更新计数 程序员面试金典 - 面试题 17.14. 最小 K 个数 排序 / 最大堆 / 快速选择 程序员面试金典 - 面试题 17.19. 消失的两个数字 扩充两正数 + 负数标记 程序员面试金典 - 面试题 17.20. 连续中值 动态维护双堆: 左边大顶堆 + 右边小顶堆 程序员面试金典 - 面试题 17.21. 直方图的水量 顺序遍历求左侧最高高度 + 逆序遍历求右侧最高高度 位运算 程序员面试金典 - 面试题 05.01. 插入 N 的 i~j 的部分清 0 -> M 左移 i 位 -> 两者取或 程序员面试金典 - 面试题 05.02. 二进制数转字符串 每次乘 2 并追加整数位, 剩余小数位继续运算直到为 0 或超过 32 位范围 程序员面试金典 - 面试题 05.03. 翻转数位 双指针记录上一个连续 1 和当前连续 1 的长度 程序员面试金典 - 面试题 05.04. 下一个数 位运算交换 01 求略大数和略小数 程序员面试金典 - 面试题 05.06. 整数转换 求异或 -> 计算 1 的个数 程序员面试金典 - 面试题 05.07. 配对交换 奇数变偶数 | 偶数变奇数 程序员面试金典 - 面试题 05.08. 绘制直线 分三部分填充: 左侧 + 中间全 1 + 右侧 程序员面试金典 - 面试题 16.01. 交换数字 三次异或 程序员面试金典 - 面试题 16.07. 最大数值 检查差的符号位 程序员面试金典 - 面试题 16.09. 运算 构造取反方法实现减法 + 构造左移方法&因子分解实现乘除法 程序员面试金典 - 面试题 17.01. 不用加号的加法 异或求不带进位和 + 与和左移求进位 链表 程序员面试金典 - 面试题 02.01. 移除重复节点 使用集合存储遍历过的节点值, 或两重循环判断以避免额外存储 程序员面试金典 - 面试题 02.02. 返回倒数第 k 个节点 快慢指针, 快指针先走 k 步, 然后快慢指针一起走 程序员面试金典 - 面试题 02.03. 删除中间节点 将 next 节点值赋给当前节点, 然后删除 next 节点 程序员面试金典 - 面试题 02.04. 分割链表 快排思想, 小的放左边, 大的放右边, 最后连起来 程序员面试金典 - 面试题 02.05. 链表求和 使用哨兵, 维护进位 (正向存放时须先翻转再求和再翻转) 程序员面试金典 - 面试题 02.06. 回文链表 快慢指针找中点 -> 翻转右半部分 -> 双指针判断是否回文 程序员面试金典 - 面试题 02.07. 链表相交 双指针遍历, 到结尾时换成对方的头继续, 相等时要么相交(非空), 要么无相交(空节点) 程序员面试金典 - 面试题 02.08. 环路检测 快慢指针直到相遇 -> 慢指针重置为头 -> 两指针同速直到再次相遇 程序员面试金典 - 面试题 16.25. LRU 缓存 双向链表 + {key:node}字典 程序员面试金典 - 面试题 17.12. BiNode 中序遍历 + 维护链表前一节点 栈/队列 程序员面试金典 - 面试题 03.01. 三合一 预留空间分三部分, 记录每个栈的栈顶下标和元素个数 程序员面试金典 - 面试题 03.02. 栈的最小值 额外单调递减栈, 当前 push 值小于等于单调栈顶时 push, 当前 pop 值等于单调栈顶时 pop 程序员面试金典 - 面试题 03.03. 堆盘子 栈数组模拟整个过程 程序员面试金典 - 面试题 03.04. 化栈为队 stackIn 和 stackOut 栈, 倒入时优先 in 栈, 倒出时优先 out 栈, 没有时则先将 in 栈倒入 out 栈 程序员面试金典 - 面试题 03.05. 栈排序 持久化存储辅助栈, 通过倒入倒出找到合适的插入和弹出位置 程序员面试金典 - 面试题 03.06. 动物收容所 两个双端队列分别存猫和狗的(id,入队时间)二元组 程序员面试金典 - 面试题 16.26. 计算器 数字和操作符双栈 + 根据优先级处理 树 程序员面试金典 - 面试题 04.01. 节点间通路 转邻接表 -> DFS/BFS 判断是否连通 程序员面试金典 - 面试题 04.02. 最小高度树 递归分治区间建树, 将当前区间中点作为根 程序员面试金典 - 面试题 04.03. 特定深度节点链表 按层 BFS, 记录该层头节点 程序员面试金典 - 面试题 04.04. 检查平衡性 递归处理, 平衡时返回高度, 不平衡时返回-1 程序员面试金典 - 面试题 04.05. 合法二叉搜索树 递归传入上下界判断 / 中序遍历判断是否有序 程序员面试金典 - 面试题 04.06. 后继者 利用二叉搜索树性质二分迭代查找 / 中序遍历找前一个节点是 p 的节点 程序员面试金典 - 面试题 04.08. 首个共同祖先 方法 1 - 递归: 返回 findp 和 findq, 找第一个都为 true 的节点, 即为最近祖先 方法 2 - 迭代: parent 字典 + visit 集合, 找到一个在 v 集合的父节点后就直接返回, 它就是最近祖先 程序员面试金典 - 面试题 04.09. 二叉搜索树序列 递归搜索: 传入当前节点 + 下个有效节点集合 + 当前数组, 集合为空时说明找到了一个合法数组 程序员面试金典 - 面试题 04.10. 检查子树 额外递归方法判断两树是否完全相等, 然后传入 t1 和 t2, 不相等时再递归自身, 判断 t2 和 t1 的左/右子节点 程序员面试金典 - 面试题 04.12. 求和路径 递归 + 前缀和计数字典: 当前和减去 sum 的前缀和计数即为以当前节点为终点的有效路径个数 程序员面试金典 - 面试题 10.10. 数字流的秩 二叉搜索树, 额外存储左子树数目 图 程序员面试金典 - 面试题 01.07. 旋转矩阵 剥洋葱, 分层 4 方向旋转 程序员面试金典 - 面试题 01.08. 零矩阵 使用第 0 行/列标记该行/列的含 0 情况, 结合额外 flag 处理第 0 行/列自身含 0 的情况 程序员面试金典 - 面试题 08.10. 颜色填充 BFS 找连通分量, 遍历到即可涂色 程序员面试金典 - 面试题 10.09. 排序矩阵查找 左下角开始, 每次排除一行或一列 程序员面试金典 - 面试题 16.03. 交点 计算斜截式 -> 分四种情况找有效交点列表 程序员面试金典 - 面试题 16.04. 井字游戏 外层循环 XO -> 内层四种判断 程序员面试金典 - 面试题 16.13. 平分正方形 两中心连线 + 斜截式求交点并排序 程序员面试金典 - 面试题 16.14. 最佳直线 两重循环 + 计算斜截式 + 字典存(k,b)->(second_i,point_cnt) 程序员面试金典 - 面试题 16.19. 水域大小 BFS 遍历 8 方向找连通分量 程序员面试金典 - 面试题 16.20. T9 键盘 数字字母映射字典 程序员面试金典 - 面试题 16.22. 兰顿蚂蚁 模拟 + 维护当前网格值和四边界 程序员面试金典 - 面试题 17.23. 最大黑方阵 维护当前格子向左和向上最大连续黑边长 + 从最大可能边长开始遍历 程序员面试金典 - 面试题 17.24. 最大子矩阵 二重循环上下边界压缩成单行数组 -> 求连续子数组最大和 程序员面试金典 - 面试题 17.25. 单词矩阵 字典树 + {单词宽度:单词列表}映射字典 + 从大到小遍历宽度 + 传入宽度数目的根节点回溯 递归回溯 程序员面试金典 - 面试题 08.04. 幂集 递归回溯 / 迭代位运算 程序员面试金典 - 面试题 08.05. 递归乘法 二进制乘法: 乘每一位然后移位 程序员面试金典 - 面试题 08.06. 汉诺塔问题 递归模拟盘子在三个柱子间的移动 程序员面试金典 - 面试题 08.07. 无重复字符串的排列组合 递归回溯: 每次选任一剩余字符 程序员面试金典 - 面试题 08.08. 有重复字符串的排列组合 找当前字符串的字典序的下一个排列, 直到找到所有排列 程序员面试金典 - 面试题 08.09. 括号 递归回溯: 维护左右括号数目和当前括号字符串 程序员面试金典 - 面试题 08.12. 八皇后 递归回溯: 使用三个集合分别记录当前用过的列/对角线/反对角线 动态规划/记忆化搜索 程序员面试金典 - 面试题 08.01. 三步问题 三变量动态规划 程序员面试金典 - 面试题 08.02. 迷路的机器人 动态规划存是否可达 -> 倒推找有效路径 程序员面试金典 - 面试题 08.11. 硬币 动态规划: dp[sm]表示将总和为 sm 的方案数 程序员面试金典 - 面试题 08.13. 堆箱子 逆序排序 -> 动态规划: dp[j]表示箱子 j 在顶部的最大高度 程序员面试金典 - 面试题 08.14. 布尔运算 记忆化搜索 + 递归分治: 传入当前区间, 返回计算结果为 0 和 1 的方案数 程序员面试金典 - 面试题 16.17. 连续数列 单变量动态规划: dp[i]表示以 i 结尾的最大和 程序员面试金典 - 面试题 17.13. 恢复空格 动态规划 + 字符串集合 程序员面试金典 - 面试题 17.15. 最长单词 转单词集合 + 记忆化搜索 + 检查组合可能性 程序员面试金典 - 面试题 17.16. 按摩师 双变量动态规划: dp0 和 dp1 分别表示不接和接当前预约的最长时间

大家可以在下面这些地方找到我~😊

我的 GitHub

***********

*******

我的知乎专栏

我的头条号

我的牛客网博客

我的公众号: 算法精选, 欢迎大家扫码关注~😊

算法精选 - 微信扫一扫关注我

注意!此信息未认证,请谨慎判断信息的真实性!

提示


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3