《剑指offer》读后感

帮研二的学姐准备网易暑期实习的机试时,代码提交在一个OJ网站叫牛客网。出于好奇就多点了一下这个网站,看到《剑指offer》的在线编程专栏,就是把剑指offer中的题目都挂在了网上,可以在线判断是否AC。以前也总是听到学长们推荐该书,索性趁着项目不是太赶的时候把该书一口气读完了,顺便把其中的代码一并AC。

总的来说,对于代码的菜鸟,看完一遍还是能提高很多的,如果仅仅将该书定位于面试前的突击书还是有些暴殄天物。作者何海涛在书中列举出了68道面试时常见的编程题(包含英文版新加的18道),题型范围包含常见的数据结构和算法,因此对于想要提高自己编程能力的人来说也是一个很好的读物。

其中数据结构围绕数组、字符串、链表、数、栈和队列。如果经常刷OJ网站,会发现OJ网站的题目数据结构题型也是这样分类的。并且数组和字符串是最基本的数据结构,用连续的内存存储数字和字符;链表和树是最常见的数据结构,难度适中,在面试时最能考察应聘者的基本编程素质;栈和队列也是常用的数据结构,尤其是涉及到“先入先出“或者“先入后出”的思想的时候,要能很自然的反应到是栈和队列。

算法围绕排序和查找。在《数据结构与算法》课程中,最关键的就是要掌握排序和查找的常见算法的思想和代码编写。本书中要求应聘者着重掌握二分查找、归并排序和快速排序,做到“能够随时正确完整地写出他们的代码“,阅读本文的各位可以问一下自己能否做到(如果不能请移步http://www.jianshu.com/p/8c915179fd02http://www.jianshu.com/p/b07c69a91535)。

本书的题目乍看起来好像我们自己都能实现,不过我们自己能实现的一般都是最通用最暴力的方式。本书的解题方式站在暴力解法的基础上分析是否有时间和空间复杂度的优化的可能性,如果时间复杂度太高能否采用用空间复杂度换取时间复杂度?本书讲解的过程思路一步一步,有理可循,并且有图形解释说明,使得看完之后自己也能手动实现优化的算法。看完该书之后再看leetcode上一些很Hard的算法题好像也不是那么难了,可以自己在草稿纸上画图然后慢慢去分析,也可以回头再翻阅该书作为算法词典。

当然在阅读该书的68个算法题过程中,还有一部分并没有理解的很好,所以以后刷题的时候可以再翻阅一下该书,加深理解。并且实现完代码上传到github时才发现,大部分代码以为自己思路很清醒就没有加注释,可能会导致自己再次翻看自己代码的时候搞不明白一些代码想要干啥,所以以后有时间二刷的时候一定要加上注释。

牛客网代码链接:https://www.nowcoder.com/profile/723693/codeBooks
GITHUB代码链接:https://github.com/Irvinglove/SwordToOffer

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值