剑指offer(第二版)java实现导航帖

欢迎关注(所属专题在评论区的下方)

欢迎点赞

欢迎留言

欢迎讨论

一起加油!你的每个反馈都是我的动力!

说明

《剑指offer》,从名字上看虽不是一本系统的算法书,但很多师兄师姐都推荐它,因为很多互联网公司的面试算法题都能这本书上找到思路,链表,二叉树,图,查找,排序,时间空间的优化,队列,栈,覆盖面比较广且不拖沓。无奈这本书是用C++写的,为了方便复习与参考,已将原书第一版(链接)用Java写了一遍。今年5月,该书第二版发布,新添的内容也很不错,动态规划,回溯法,贪婪算法,正则表达式等,我便又买了第二版。一是打算再刷一遍旧题,巩固下,二是见见新题。欢迎交流指教。

源代码

github地址:https://github.com/ryderchan/point-to-offer-edition2

类别顺序分析(部分题目)

字符串
页号题目简书链接
515.替换空格http://www.jianshu.com/p/0135b2e13f41
12419.正则表达式匹配http://www.jianshu.com/p/462f54c25e3f
12720.表示数字的字符串http://www.jianshu.com/p/477388f9693e
28458.翻转单词顺序http://www.jianshu.com/p/8a79f439e63d
28658.2.左旋转字符串http://www.jianshu.com/p/c2f062b59bda
31867.把字符串转换成整数http://www.jianshu.com/p/31dc58b9eca9
栈队列
页号题目简书链接
689.用两个栈实现队列http://www.jianshu.com/p/e92f42b892d0
16530.包含min函数的栈http://www.jianshu.com/p/c2f313eb26a5
16831.栈的压入弹出序列http://www.jianshu.com/p/e39ff6a1b3ee
288滑动窗口的最大值http://www.jianshu.com/p/95e4e819761b
29259.2.队列的最大值http://www.jianshu.com/p/13ab1c51eac6
链表
页号题目简书链接
586.从尾到头打印链表http://www.jianshu.com/p/ba84345d45f9
11918.o(1)时间删除链表的节点http://www.jianshu.com/p/5e2275757a3d
12218-2.删除排序链表中重复的节点http://www.jianshu.com/p/efb520176364
13422.链表中倒数第k个节点http://www.jianshu.com/p/0a2b3b783a54
13923.链表中环的入口(双指针总结)http://www.jianshu.com/p/924940701642
14224.反转链表http://www.jianshu.com/p/81d3c9117d52
14525.合并两个排序的链表http://www.jianshu.com/p/0f92e9d83699
18735.复杂链表的复制http://www.jianshu.com/p/e6eea3a0aa43
25352.两个链表的第一个公共节点http://www.jianshu.com/p/aef2e3862d59
页号题目简书链接
60总结:二叉树的遍历http://www.jianshu.com/p/362d4ff42ab2
627.重建二叉树http://www.jianshu.com/p/ddc50561dda5
658.二叉树的下一个节点http://www.jianshu.com/p/85eea9f1adf0
14826.树的子结构http://www.jianshu.com/p/1fab9278a947
15127.二叉树的镜像http://www.jianshu.com/p/055907cc3ca1
15928.对称的二叉树http://www.jianshu.com/p/7f1bce9c6928
17132.从上到下打印二叉树http://www.jianshu.com/p/962a5c053e1f
17432.2.分行从上到下打印二叉树http://www.jianshu.com/p/bca35632cc76
17632.3.之字形打印二叉树http://www.jianshu.com/p/962a5c053e1f
17933.二叉搜索树的后序遍历http://www.jianshu.com/p/49aaf6e0491d
18234.二叉树中和为某一值的路径http://www.jianshu.com/p/6c1d5cd26020
19136.二叉搜索树与双向链表http://www.jianshu.com/p/cbeb226afa4c
19437.序列化二叉树http://www.jianshu.com/p/61ec6618f792
26954.二叉搜索树的第k大节点http://www.jianshu.com/p/fa35d13200d9
27155.二叉树的深度http://www.jianshu.com/p/0411c31d0b08
27355.2.平衡二叉树http://www.jianshu.com/p/59db1f0e6ca9
32668.树中两个节点的最低公共祖先http://www.jianshu.com/p/edffe43abc14
哈希
页号题目简书链接
393.数组中重复的数http://www.jianshu.com/p/fb65947a2e9c
24350.第一个只出现一次的字符http://www.jianshu.com/p/92daf959e793
24750.2.流中第一个出现一次的字符http://www.jianshu.com/p/dd9826ff5109
位运算
页号题目简书链接
10015.二进制中1的个数http://www.jianshu.com/p/33d4b952f445
27756.数组中只出现一次的两个数字http://www.jianshu.com/p/1a9997924cc6
27856.2.数组中唯一出现一次的数字http://www.jianshu.com/p/1a9997924cc6
279总结:元素出现次数的终极总结http://www.jianshu.com/p/896accc5bc6d
31065.不用加减乘除做加法http://www.jianshu.com/p/e1e77b010ecc
312不用新变量交换两个原有变量的值http://www.jianshu.com/p/0eb31b8b1bcf
查找
页号题目简书链接
444.二维数组中的查找http://www.jianshu.com/p/59e6cdf999a5
8211.旋转数组的最小数字http://www.jianshu.com/p/27b84fee0064
26353.数字在排序数组中出现的次数http://www.jianshu.com/p/a5bda52fe134
26653.2.0~n中缺失的数字http://www.jianshu.com/p/626f921c2091
排序
页号题目简书链接
79总结:排序算法http://www.jianshu.com/p/6ae77d17170c
79总结:数组&链表的快排http://www.jianshu.com/p/bbcfb28e3242
12921.使数组中奇数位于偶数前面http://www.jianshu.com/p/3c332f879722
20539.数组中出现次过一半的数字http://www.jianshu.com/p/aba14db8cbf2
20940.最小的k个数http://www.jianshu.com/p/2198f276ad2a
21441.数据流中的中位数http://www.jianshu.com/p/cca34b891266
22745.把数组排列成最小的数http://www.jianshu.com/p/3cead2821c68
24951.数组中的逆序对http://www.jianshu.com/p/c7f98f5cc918
动态规划
页号题目简书链接
9614.剪绳子(动态规划)http://www.jianshu.com/p/63b780a3157a
21842.连续子数组的最大和http://www.jianshu.com/p/fa1530aafc34
23146.把数字翻译成字符串http://www.jianshu.com/p/80e1841909b7
23347.礼物的最大值http://www.jianshu.com/p/489098b6c5c3
23648.最长不含重复字符的子字符串http://www.jianshu.com/p/b95997657aae

页号顺序分析(全部题目)

页号题目简书链接
251.赋值运算符函数http://www.jianshu.com/p/3f024a03176b
322.实现单例模式http://www.jianshu.com/p/fdc64df67794
393.数组中重复的数http://www.jianshu.com/p/fb65947a2e9c
444.二维数组中的查找http://www.jianshu.com/p/59e6cdf999a5
515.替换空格http://www.jianshu.com/p/0135b2e13f41
586.从尾到头打印链表http://www.jianshu.com/p/ba84345d45f9
60总结:二叉树的遍历http://www.jianshu.com/p/362d4ff42ab2
627.重建二叉树http://www.jianshu.com/p/ddc50561dda5
658.二叉树的下一个节点http://www.jianshu.com/p/85eea9f1adf0
689.用两个栈实现队列http://www.jianshu.com/p/e92f42b892d0
7410.斐波那契数列http://www.jianshu.com/p/be764a696745
79总结:排序算法http://www.jianshu.com/p/6ae77d17170c
79总结:数组&链表的快排http://www.jianshu.com/p/bbcfb28e3242
8211.旋转数组的最小数字(二分查找)http://www.jianshu.com/p/27b84fee0064
8912.矩阵中的路径(回溯法)http://www.jianshu.com/p/737e587935d8
9213.机器人的运动范围(回溯法)http://www.jianshu.com/p/e38d425b3677
9614.剪绳子(动态规划)http://www.jianshu.com/p/63b780a3157a
10015.二进制中1的个数(位运算)http://www.jianshu.com/p/33d4b952f445
11016.数值的整数次方(细节)http://www.jianshu.com/p/83b5663a519b
11417.打印从1到最大的n位(大数问题)http://www.jianshu.com/p/71c20c0a44b5
11918.o(1)时间删除链表的节点http://www.jianshu.com/p/5e2275757a3d
12218-2.删除排序链表中重复的节点http://www.jianshu.com/p/efb520176364
12419.正则表达式匹配(匹配)http://www.jianshu.com/p/462f54c25e3f
12720.表示数字的字符串(匹配)http://www.jianshu.com/p/477388f9693e
12921.使数组中奇数位于偶数前面http://www.jianshu.com/p/3c332f879722
13422.链表中倒数第k个节点http://www.jianshu.com/p/0a2b3b783a54
13923.链表中环的入口(双指针总结)http://www.jianshu.com/p/924940701642
14224.反转链表http://www.jianshu.com/p/81d3c9117d52
14525.合并两个排序的链表http://www.jianshu.com/p/0f92e9d83699
14826.树的子结构http://www.jianshu.com/p/1fab9278a947
15127.二叉树的镜像http://www.jianshu.com/p/055907cc3ca1
15928.对称的二叉树http://www.jianshu.com/p/7f1bce9c6928
16129.顺时针打印矩阵http://www.jianshu.com/p/1bf321eff014
16530.包含min函数的栈http://www.jianshu.com/p/c2f313eb26a5
16831.栈的压入弹出序列http://www.jianshu.com/p/e39ff6a1b3ee
17132.从上到下打印二叉树http://www.jianshu.com/p/962a5c053e1f
17432.2.分行从上到下打印二叉树http://www.jianshu.com/p/bca35632cc76
17632.3.之字形打印二叉树http://www.jianshu.com/p/962a5c053e1f
17933.二叉搜索树的后序遍历http://www.jianshu.com/p/49aaf6e0491d
18234.二叉树中和为某一值的路径http://www.jianshu.com/p/6c1d5cd26020
18735.复杂链表的复制http://www.jianshu.com/p/e6eea3a0aa43
19136.二叉搜索树与双向链表http://www.jianshu.com/p/cbeb226afa4c
19437.序列化二叉树http://www.jianshu.com/p/61ec6618f792
19738.字符串的排列http://www.jianshu.com/p/17e7d220e8d4
19938.2字符串的组合http://www.jianshu.com/p/a28b8feda61b
20539.数组中出现次过一半的数字http://www.jianshu.com/p/aba14db8cbf2
20940.最小的k个数http://www.jianshu.com/p/2198f276ad2a
21441.数据流中的中位数http://www.jianshu.com/p/cca34b891266
21842.连续子数组的最大和http://www.jianshu.com/p/fa1530aafc34
22143. 1~n整数中1出现的次数http://www.jianshu.com/p/25f33c14297f
22544.数字序列中某一位的数字http://www.jianshu.com/p/0bbf1fcbe070
22745.把数组排列成最小的数http://www.jianshu.com/p/3cead2821c68
23146.把数字翻译成字符串http://www.jianshu.com/p/80e1841909b7
23347.礼物的最大值http://www.jianshu.com/p/489098b6c5c3
23648.最长不含重复字符的子字符串http://www.jianshu.com/p/b95997657aae
24049.丑数http://www.jianshu.com/p/75bd206d865d
24350.第一个只出现一次的字符http://www.jianshu.com/p/92daf959e793
24750.2.流中第一个出现一次的字符http://www.jianshu.com/p/dd9826ff5109
24951.数组中的逆序对http://www.jianshu.com/p/c7f98f5cc918
25352.两个链表的第一个公共节点http://www.jianshu.com/p/aef2e3862d59
26353.数字在排序数组中出现的次数http://www.jianshu.com/p/a5bda52fe134
26653.2.0~n中缺失的数字http://www.jianshu.com/p/626f921c2091
26753.3.数组中数值和下标相等的元素http://www.jianshu.com/p/912abde72cbd
26954.二叉搜索树的第k大节点http://www.jianshu.com/p/fa35d13200d9
27155.二叉树的深度http://www.jianshu.com/p/0411c31d0b08
27355.2.平衡二叉树http://www.jianshu.com/p/59db1f0e6ca9
27756.数组中只出现一次的两个数字http://www.jianshu.com/p/1a9997924cc6
27856.2.数组中唯一出现一次的数字http://www.jianshu.com/p/1a9997924cc6
279总结:元素出现次数的终极总结http://www.jianshu.com/p/896accc5bc6d
28057.和为s的数字http://www.jianshu.com/p/9e4be7866cb9
28257.2.和为s的连续正数序列http://www.jianshu.com/p/272a81c77bfa
28458.翻转单词顺序http://www.jianshu.com/p/8a79f439e63d
28658.2.左旋转字符串http://www.jianshu.com/p/c2f062b59bda
28859.滑动窗口的最大值http://www.jianshu.com/p/95e4e819761b
29259.2.队列的最大值http://www.jianshu.com/p/13ab1c51eac6
29460.n个骰子的点数http://www.jianshu.com/p/5fc41ff88c3a
29861.扑克牌中的顺子http://www.jianshu.com/p/8e81fea0dc51
30062.圆圈中最后剩下的数字http://www.jianshu.com/p/c522de1cdfab
30463.股票的最大利润http://www.jianshu.com/p/861d404abdd0
30764.求1+2+…+nhttp://www.jianshu.com/p/f77ab41ae245
31065.不用加减乘除做加法http://www.jianshu.com/p/e1e77b010ecc
312总结:不用新变量交换两个原有变量的值http://www.jianshu.com/p/0eb31b8b1bcf
31366.构建乘积数组http://www.jianshu.com/p/fa1e332f7d92
31867.把字符串转换成整数http://www.jianshu.com/p/31dc58b9eca9
32668.树中两个节点的最低公共祖先http://www.jianshu.com/p/edffe43abc14
    原文作者:ryderchan
    原文地址: https://www.jianshu.com/p/010410a4d419
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞