剑指Offer Java版 66题刷题笔记汇总

备战校招研发岗,无论笔试还是面试算法都占很大比重的,加油!


写在前面

    此文章为刷题笔记的汇总篇,包含《剑指Offer》66道算法题的个人解题思路及Java代码。 代码同步发布在GitHub: 所有题目均可在牛客网在线编程平台进行调试。 网址:

计划一周刷完66题,每天的刷题笔记会整理在一篇文章中,每天的题量也是根据难易程度及本人接受能力划分的,希望阅读的小伙伴按自身情况来计划刷题。

Day1:

    T1. 二维数组中的查找 T2. 替换空格 T3. 从尾到头打印链表 T4. 重建二叉树 T5. 用两个栈实现队列 T6. 旋转数组的最小数字 T7. 斐波那契数列 T8. 跳台阶 T9. 变态跳台阶 T10. 矩阵覆盖 T11. 二进制中 1 的个数 T12. 数值的整数次方 T13. 调整数组顺序使奇数位于偶数前面 T14. 链表中倒数第 K 个结点 T15. 反转链表 T16. 合并两个排序的链表

Day2:

    T17. 树的子结构 T18. 二叉树的镜像 T19. 顺时针打印矩阵 T20. 包含 min 函数的栈 T21. 栈的压入、弹出序列 T22. 从上往下打印二叉树 T23. 二叉搜索树的后序遍历序列 T24. 二叉树中和为某一值的路径 T25. 复杂链表的复制 T26. 二叉搜索树与双向链表

Day3:

    T27. 字符串的排列 T28. 数组中出现次数超过一半的数字 T29. 最小的K个数 T30. 连续子数组的最大和 T31. 整数中1出现的次数(从1到n整数中1出现的次数) T32. 把数组排成最小的数 T33. 丑数 T34. 第一个只出现一次的字符位置 T35. 数组中的逆序对 T36. 两个链表的第一个公共结点 T37. 数字在排序数组中出现的次数

Day4:

    T38. 二叉树的深度 T39. 平衡二叉树 T40. 数组中只出现一次的数字 T41. 和为S的连续正数序列 T42. 和为S的两个数字 T43. 左旋转字符串 T44. 翻转单词顺序列 T45. 二叉树的深度 T46. 孩子们的游戏(圆圈中最后剩下的数) T47. 求1+2+3+…+n T48. 不用加减乘除做加法 T49. 把字符串转换成整数

Day5:

    T50. 二叉树的深度 T51. 构建乘积数组 T52. 正则表达式匹配 T53. 表示数值的字符串 T54. 字符流中第一个不重复的字符 T55. 链表中环的入口结点 T56. 删除链表中重复的结点 T57. 二叉树的下一个结点 T58. 对称的二叉树 T59. 按之字形顺序打印二叉树 T60. 把二叉树打印成多行

Day6:

    T61. 序列化二叉树 T62. 二叉搜索树的第k个结点 T63. 数据流中的中位数 T64. 滑动窗口的最大值 T65. 矩阵中的路径 T66. 机器人的运动范围

最终耗时六天,加这一篇总算补足七篇,O(∩_∩)O哈哈~

有不足之处欢迎各位大佬批评指正。


我的GitHub:

如果有任何问题可在评论留言,或在发布,我会尽量及时查看回复。

经验分享 程序员 微信小程序 职场和发展