《剑指Offer》从零单刷个人笔记整理(66题全)

github:https://github.com/ChopinXBP/JZOffer_Babel/

《剑指Offer》以面试题为主,代码大都不长。比较适合两种人,第一种是新手入门,第二种是面前备战。

我就是以新手的姿态来刷这本书的,每一道题先按自己的思路写一遍,然后尽可能尝试所有的方法实现并调优,然后再把感想和总结以博客的形式进行记录和分享。


由于本人学习语言主Java,辅C++,所以每题用Java写完后都会再过一下C++的解法过程,但是大多数算法题上两者基本思想没有区别,只是实现方式不同。

前面的题目因为不是很难,可能记录不是很多,后面开始比较用心地进行原理和方法的剖析,每道题都用几乎所有可行的方法进行了实现和调优,大多数题目都附上了测试用例,少数题目进行了一些升级和扩充

附上每道题解答传送门之前会对该题进行评分评价。评价方式分为两点,实现难度指的是不考虑复杂度完成代码通过的难度(决定题目难度下限),优化难度指的是写出考虑周全且复杂度降至最低的算法的难度(决定题目难度上限),优化难度不小于实现难度。评价基线为刷这道题的新手平均水平,满分★★★★★。困难评级直接参考优化难度。


欢迎大家点赞关注收藏!


1. 二维数组中的查找(实现难度:★★,优化难度:★★) 简单

关键词:数组、动态规划、二分查找

#数据结构与算法学习笔记#剑指Offer1:二维数组中的查找(JAVA、C/C++)


2. 替换空格(实现难度:★,优化难度:★★) 简单

关键词:字符串、replaceAll

#数据结构与算法学习笔记#剑指Offer2:替换空格(Java、C/C++)


3. 从尾到头打印链表(实现难度:★,优化难度:★) 简单

关键词:栈、链表

#数据结构与算法学习笔记#剑指Offer3:从尾到头打印链表(Java、C/C++)


4. 先序遍历+中序遍历重建二叉树(实现难度:★★★☆,优化难度:★★★☆) 中等

关键词:找规律、递归、二叉树、先序遍历、中序遍历

#数据结构与算法学习笔记#剑指Offer4:先序遍历+中序遍历重建二叉树(Java、C/C++)


5. 用两个栈实现队列(实现难度:★★,优化难度:★★) 简单

关键词:栈、队列

#数据结构与算法学习笔记#剑指Offer5:用两个栈实现队列(Java、C/C++)


6. 旋转数组的最小数字(实现难度:★★☆,优化难度:★★☆) 简单

关键词:数组、二分查找

#数据结构与算法学习笔记#剑指Offer6:旋转数组的最小数字(Java、C/C++)


7. 斐波那契数列(实现难度:★★★,优化难度:★★★☆)中等

关键词:斐波那契数列

#数据结构与算法学习笔记#剑指Offer7:斐波那契数列的四种编程实现方法 + 测试用例(Java、C/C++)


8. 普通青蛙跳台阶+变态青蛙跳台阶(实现难度:★★★★,优化难度:★★★★)困难

关键词:斐波那契数列、找规律、公式推导

#数据结构与算法学习笔记#剑指Offer8:普通青蛙跳台阶+变态青蛙跳台阶+最清晰数学归纳法证明(Java、C/C++)


9. 矩形覆盖(实现难度:★★★☆,优化难度:★★★☆)中等

关键词:斐波那契数列、找规律

#数据结构与算法学习笔记#剑指Offer9:矩形覆盖智力题+斐波那契数列(Java、C/C++)


10. 求二进制中1的个数(实现难度:★,优化难度:★★★☆)中等

关键词:位运算、找规律

#数据结构与算法学习笔记#剑指Offer10:位运算:求二进制中1的个数+四种解法比较+测试用例(Java、C/C++)


11. 求数值的整数次方(实现难度:★☆,优化难度:★★☆) 简单

关键词:库函数、浮点数、找规律

#数据结构与算法学习笔记#剑指Offer11:求数值的整数次方/实现库函数pow + 判断double为0 + 测试用例(Java、C/C++)


  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值