[剑指-Offer] 0. 《剑指-Offer》面试题题解汇总
剑指-Offer
该专栏收录了学习《剑指-Offer》第二版书中的面试题,书中编程题是新大多以 LeetCode
对应系列的线上 OJ
给解答,下面会以章节的形式给出博主总结的本书中各个面试题的链接,方便对应查阅、学习。
第 2 章:面试需要的基础知识
2.2 编程语言
2.3 数据结构
[剑指-Offer] 3. 数组中重复的数字(哈希、抽屉原理、代码优化、多方法)
[剑指-Offer] 4. 二维数组中的查找(数学、二分法)
[剑指-Offer] 5. 替换空格(反向思维、代码优化、多方法)
[剑指-Offer] 6. 从尾到头打印链表(链表逆置、递归、鲁棒性、多方法)
[剑指-Offer] 7. 重建二叉树(二叉树、递归建树)
[剑指-Offer] 8. 二叉树的下一个结点(多情况分析、画图分析)
[剑指-Offer] 9. 用两个栈实现队列(栈、队列、模拟)
2.4 算法和数据操作
[剑指-Offer] 10. I. 斐波那契数列及II. 青蛙跳台阶问题(递归、fib快速计算、fib求和公式、fib通项公式)
[剑指-Offer] 11. 旋转数组的最小数字(二分法、分治、递归)
[剑指-Offer] 12. 矩阵中的路径(回溯、DFS、递归、代码优化)
[剑指-Offer] 13. 机器人的运动范围(回溯、DFS、递归、代码优化)
[剑指-Offer] 14. 剪绳子I、剪绳子II(数学、动态规划、贪心、代码优化)
[剑指-Offer] 15. 二进制中1的个数(位运算、技巧、代码优化)
第 3 章:高质量的代码
3.3 代码的完整性
[剑指-Offer] 16. 数值的整数次方(快速幂、递归、代码优化、多方法)
[剑指-Offer] 17. 打印从1到最大的n位数(高精度、全排列、代码优化、多方法)
[剑指-Offer] 18. 删除链表的节点(链表删除、递归、代码优化)
[剑指-Offer] 19. 删除链表的节点(递归、动态规划、多方法)
[剑指-Offer] 20. 表示数值的字符串(多情况分析、分类讨论、代码优化)
[剑指-Offer] 21. 调整数组顺序使奇数位于偶数前面(双指针、解耦)
3.4 代码的鲁棒性
[剑指-Offer] 22. 链表中倒数第k个节点(常规解法、特殊情况、鲁棒性)
[剑指-Offer] 23. 链表中环的入口结点(带环链表、快慢指针、代码优化)
[剑指-Offer] 24. 反转链表(常规解法、特殊情况、鲁棒性)
[剑指-Offer] 25. 合并两个排序的链表(递归、迭代、常规解法)
[剑指-Offer] 26. 树的子结构(递归、代码简化)
第 4 章:解决面试题的思路
4.2 画图让抽象问题形象化
4.3 举例让抽象问题具体化
[剑指-Offer] 30. 包含min函数的栈(边界情况,代码优化)
[剑指-Offer] 31. 栈的压入、弹出序列(模拟、常规解法)
[剑指-Offer] 32. I. II.III从上到下打印二叉树(层序遍历、栈、常规解法)
[剑指-Offer] 33. 二叉搜索树的后序遍历序列(递归、单调栈、代码优化)
[剑指-Offer] 34. 二叉树中和为某一值的路径(递归、常规解法)
4.4 分解让复杂问题简单化
[剑指-Offer] 35. 复杂链表的复制(HashMap、递归、代码优化)
[剑指-Offer] 36. 二叉搜索树与双向链表(中序遍历、递归)
[剑指-Offer] 37. 序列化二叉树(层序遍历、前序遍历、递归、特殊情况)
[剑指-Offer] 38. 字符串的排列(全排列、递归、回溯、巧妙解法)
第 5 章:优化时间和空间效率
5.2 时间效率
[剑指-Offer] 39. 数组中出现次数超过一半的数字(多数投票算法、sort函数、代码优化)
[剑指-Offer] 40. 最小的k个数(快速排序、海量数据、巧妙解法)
[剑指-Offer] 41. 数据流中的中位数(堆、泛型算法、顶级解法)
[剑指-Offer] 42. 连续子数组的最大和(前缀和、双指针、动态规划、代码优化)
[剑指-Offer] 43. 1–n整数中1出现的次数(数学、思维、大数、巧妙解法)
[剑指-Offer] 44. 数字序列中某一位的数字(数学、思维、巧妙解法)
[剑指-Offer] 45. 把数组排成最小的数(数学、思维、lambada表达式、巧妙解法)
[剑指-Offer] 46. 把数字翻译成字符串(思维、递归、巧妙解法)
[剑指-Offer] 48. 最长不含重复字符的子字符串(滑动窗口、哈希映射、常规解法)
5.3 时间效率与空间效率的平衡
[剑指-Offer] 49. 丑数(思维、代码优化、巧妙解法)
[剑指-Offer] 50. 第一个只出现一次的字符(哈希映射、常规解法)
[剑指-Offer] 51. 数组中的逆序对(思维、归并排序、巧妙解法)
[剑指-Offer] 52. 两个链表的第一个公共节点(思维、快慢指针、巧妙解法)
第 6 章:面试中的各项能力
6.3 知识迁移能力
[剑指-Offer] 53. I. 在排序数组中查找数字 I 及 II. 0~n-1中缺失的数字(二分法、代码优化、巧妙解法)
[剑指-Offer] 54. 二叉搜索树的第k大节点(中序遍历、常规解法)
[剑指-Offer] 55. I. 二叉树的深度及II. 平衡二叉树(二叉树、后序遍历、代码优化、巧妙解法)
[剑指-Offer] 56. I. 数组中数字出现的次数及II. 数组中数字出现的次数 II(位运算、异或、顶级解法)
[剑指-Offer] 57. 和为s的两个数字及II. 和为s的连续正数序列(数学、二分法、滑动窗口、巧妙解法)
[剑指-Offer] 58. I. 翻转单词顺序及II. 左旋转字符串(思维、字符串处理、巧妙解法)
[剑指-Offer] 59. I. 滑动窗口的最大值及II. 队列的最大值(模拟、单调队列、常规解法)
6.4 抽象建模能力
[剑指-Offer] 60. n个骰子的点数(递归、动态规划、巧妙解法)
[剑指-Offer] 61. 扑克牌中的顺子(模拟+常规解法)
[剑指-Offer] 62. 圆圈中最后剩下的数字(数学、环形链表、约瑟夫环、巧妙解法)
[剑指-Offer] 63. 股票的最大利润(数组、数学、动态规划、顶级解法)
6.5 发散思维能力
[剑指-Offer] 64. 求1+2+…+n(思维、顶级解法)
[剑指-Offer] 65. 不用加减乘除做加法(位运算、思维、顶级解法)
[剑指-Offer] 66. 构建乘积数组(思维、模拟、顶级解法)
第 7 章:两个面试案例
7.1 案例一
7.1 案例二
读书总结
看书 + OJ
刷题,从 2020-02-14 开始,至 2020-03-11 结束,中间几天整理了排序算法及其它事情,导致进度偏慢了一些,不过也是收获颇丰。书中的题非常经典,讲解给人以豁然开朗的感觉,这应该就是该书这么多年经久不衰的最大竞争力吧。
过段时间进行复看,加深理解并寻求更好的解法,或是整理下排版。
所有的面试题 OJ
,均给出 OJ
原地址链接,方便读者进行测试。每道题也有博主的 题目解析 及经过 OJ
测试的 源代码,在部分困难问题上博主参考本书作者的写法、题解大佬的写法及其它网上资源,在此十分感谢大家的帮助。
同时,我也将代码上传到我的 GitHub
仓库:sword_to_offer ,欢迎大家给力 star !!!
。
希望博主的这些博文能给你带来收获。
Y-puyu — 2020年3月11日
[剑指-Offer] 0. 《剑指-Offer》面试题题解汇总相关推荐
- 剑指offer第二版(leetcode)Java题解(不断更新)
1 数组中的重复数字 题目 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意一 ...
- 【剑指Offer】剑指Offer刷题笔记
数组和字符串 剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个 ...
- 剑指Offer(第二版)面试题56:数组中数字出现的次数
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/73609133冷血之心的博客) 剑指Offer(第二版)面试题56: ...
- 剑指Offer——联通研究院笔、面试题 (Offer-1已收割)
#剑指Offer--联通研究院笔.面试题 ##1.二叉树适宜存储什么样的数据? 树最适合用来表示( C ). A.有序数据元素 B.无序数据元素 C.元素之间具有分支层次关系的数据 D.元素之间无联系 ...
- 《剑指Offer》题解汇总索引表(leetcode)
<剑指Offer>题解汇总索引表(leetcode)
- 阿里发聚安全5.0 剑指互联网业务安全
本文讲的是阿里发聚安全5.0 剑指互联网业务安全[IT168 云计算]据阿里巴巴集团最新发布的2015年互联网安全年报显示,2015年,有18%的安卓设备感染病毒木马;安卓系统安全漏洞暴增10倍,而i ...
- 火绒剑 HRSword 5.0.1.1
文章目录[隐藏] 软件介绍 软件截图 版本特点 软件介绍 火绒剑-互联网安全分析软件(HRSword),它是火绒安全软件里的高级工具,适用Windows系统的安全分析辅助工具,具有系统动作监控.文件管 ...
- Android 8.0适配指北
本文已授权微信公众号:鸿洋(hongyangAndroid)原创首发. Android适配系列: Android 6.0 的动态权限管理 Android 7.0脱坑指南 Android 8.0适配指北 ...
- Void 指 针 和 NULL 指 针
Void 指 针 和 NULL 指 针 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- 六指按键,单指双控开镜开火吃鸡神器
六指按键,单指双控开镜开火吃鸡神器 六指按键,单指双控开镜开火吃鸡神器
最新文章
- seaborn使用jointplot函数为散点图添加边缘图、添加回归线、为边缘直方图添加密度曲线、使用ratio函数突出显示边缘图形(focus on Marginal Plot )
- 继谷歌苹果微软也被曝人工收集用户语音数据,微软公开承认了
- React多页面应用脚手架-v1.3.0
- 这些机房布线规范你都知道吗
- CentOS6.5 gcc升级到4.8.2
- Amazon Elasticsearch Service 入门实践
- rabbitMQ消息队列 – 面板介绍及简单demo
- mysql的join语句使用_在MySQL中使用JOIN语句进行连接操作的详细教程
- sklearn综合示例5:多分类分类器
- 深度学习之对象检测_深度学习时代您应该阅读的12篇文章,以了解对象检测
- 时区日期处理及定时 (NSDate,NSCalendar,NSTimer,NSTimeZone)
- arcgis按属性设置符号大小
- web服务启动后mysql崩溃_让Web站点崩溃最常见的七大原因
- 从3000元月薪码农到首席架构师的经历
- hp服务器系统如何用u盘恢复,软硬件技巧 篇三:HP战66之恢复U盘制作,以及恢复系统之体验感想...
- statcounter统计的浏览器市场占有率
- lemonldap java_Java LDAP操作
- 计算机主机故障有哪些,电脑主机电源常见的问题与解决方法_电脑故障
- 查看linux 系统 服务器型号
- Ubuntu 20.04settings中没有wired connected的解决方案
热门文章
- 红帽Linux如何设置root权限,LINUX下 一句话添加用户并设置ROOT权限
- matlab括号不对称,关于matlab的Error: Unbalanced or misused parentheses or brackets.什么意思?...
- Prove the EXACT 4SAT is NP-complete.
- 森林老是显示连接服务器超时,乌鸦森林之谜3:卡赫拉之影无法连接服务器是什么原因...
- 4-3 Vue的`:style`用法
- 关于PIN只能更改不能删除的解决方法
- html5分镜头脚本范例,(最新整理)分镜头脚本范本
- 【数据库】数据库课程设计一一疫苗接种数据库
- 蝇量级的JSON模型转换库(OC,Swift通用)
- Exchange Rate Difference