刷穿剑指offer-Day04-第一章结束,聊聊算法学习

昨日回顾

昨天我们介绍了求余和快速幂的相关知识,并且讲解了力扣50.实现pow的题目,主要是想让大家在理解了快速幂的实现,毕竟这是一道高频的面试考题。

但如果在算法机试或者平时开发时,还是使用内置的pow更为便捷,没必要重造轮子。

关于书中的题目

这章节今天就结束了,大家会说剑指offer中第三、第五题还没有讲。在这里需要解释下,虽然说的是刷穿剑指offer,但更多的是希望通过剑指offer这本书的整体将结果,帮我们梳理数据结构与算法的学习思路与顺序。

对于4道二进制题目,咱们挑选2道题学习掌握即可。第五题和第四题共性颇多,而第三题个人认为,应该在动态规划那章节去讲解更为合适。

后续每章节的讲解也是如此,不会照本宣科的每道题都讲一遍,而是在挑选经典题型的同时,补充一些我认为在该数据结构下同样重要、高频的考点进行讲解。欧大家有其他更好的想法,欢迎互相讨论,毕竟我们共同的目的是能学好算法。

整数内容就这些?

算上开篇讲的整数类型、二进制、与或非、取模、快速幂,整数的考点就这些了么?远远不止....

个人觉得整数的题目,是最趋近于数学思维的题目。比如以下三道幂运算的题目:

  • 231.二的幂
  • 326.三的幂
  • 342.四的幂

这些都在整数与数学的范畴内,大家如果感兴趣可以抽时间看下这三道题目。再比如力扣常见的丑数、质数、快乐数、笨阶乘、好数字的数目等等类型数不胜数。对于整数相关题目,不像二分、链表、二叉树等有固定的模板和套路,需要大家针对不同类型的题目多做总结,多思考。

关于刷题的疑问

借着本章的结束,想和大家讨论讨论关于算法刷题的一些疑问。虽然因为种种原因,间断性刷过几次力扣、牛客,但从今年2月才开始保持每天刷题、打卡和写解题的习惯。如今半年多过去了,算算刷了500多道题。作为和大家一样还在算法学习路上挣扎的难兄难弟,经常会听到朋友们的有如下问题:

  1. 算法刷题,做多少道题就能通过面试?
  2. 我准备面试,怎样一个月提升算法技能?
  3. 为什么刷过的题,回过头来又忘记了?
  4. 一道题想了几个小时,还是不知道怎么做,该去看题解么?
  5. 学习算法该按照类型刷,还是随机刷?
  6. 为什么看题目不会做,但一看题解觉得好简单?
  7. 明明做过同类型的题目,但遇到新题为什么还是做不出来?

差不多就这些问题了,不敢在问了....

一些个人观点

每个人的基础与学习方式都是不同的,没办法做到复制,但方法是可以借鉴的。今天就聊聊我这半年来的学习方式,顺便在过程中回复以上问题。如果大家觉得其中有哪些适合你,可以作为借鉴。

数量不等于能力

举个最简单的例子力扣的上有145多道位运算的题目,你把这145道都做了,然后面试考你一个简单的排序,凉了....举这个例子要说明的就是刷题要按照分类来,每种类型的题目你都要做过几道,才能面试的时候有思路,可能通过....

如何一个月速成

先来劝退那些临时抱佛脚,想一个月提升算法技能的朋友。坦白说我给不出什么建议,因为这个时间太短了,如果有机构说一个月就能全面提升算法技能,那要么是炼狱般的难度,要么就是骗你的...打开力扣标签,几十种算法与数据结构分类,每中算法一天一个月也不够。别说你一天做或者背多少道题,一天背50个单词第二天还忘一半呢,别说一天做多少道题。起初一天就十几道题的照抄方式,过一周回过头来绝对忘得一干二净。大家做过的每一道题,都需要时长去复习、二刷、甚至去N刷。举个最简单的例子 79. 单词搜索这道题我反反复复至少刷了5、6遍,就是因为对递归、记忆化等思想太陌生了。

题目一直没思路怎么办

有的朋友遇到题目,就一定要做出来,想破头的也要想出个答案。结果一道题卡一两天....我日常刷题,如果一道题半个小时还没思路,那不用想了,肯定是这个题目涉及的知识点我没学过或者没掌握,果断去看题解,然后下来把题目对应的知识点学习一遍,再找同类型的题目检验学习成果。不要一味的死磕去浪费时间。

刷题方式与顺序

对于初学的朋友,建议一定要按照数据类型挨个去刷题,这样不仅能积累扎实的基础知识,也能在学习的同时不断巩固。至于随机刷题,等到所有数据结构和算法都学习完了再开始吧,力扣的每日一题对新手并不友好...

几行代码的题我不会

之前经常会遇到这种情况,一道题有思路但就是想好久做不出来,一看题解恍然大悟,我就是这么想的,我写的跟它差不多,就是那几行代码我没想明白。嗯,抱歉,没想明白就是没想明白,一行错也不能通过。还是你对这个知识点没学透彻,再学一遍吧。

遇到同类型题目还是不会做

和上面的类似,一样是这个类型的知识点没有充分掌握,或者是知识点的变种与延伸性掌握不足,接着刷就对了。

笔记的重要性

最后想强调的就是做笔记的重要性,当前刷了550道题,写了260道题解,本身将知识复述给他人,就是一个二次学习的机会。你在总结题解的同时,不仅方便了自己后期复习,也可以在这个过程中帮你梳理脑海中的知识体系。

另外还有一个好处,当你的题解有人点赞或者评论时,喜悦是一方面,更多的是你会点到这个题解里面看看这是什么题,当时是怎么做的,相当于你拥有了一个不定时复习的题型系统,简直不要太赞。

今天说了很多与刷题无关的内容,仅为了分享一些关于自己刷题过程中的总结,觉得对你有帮助的可以借鉴,觉得说的不和你意的,望轻喷。。。

欢迎关注我的公众号: 清风Python,带你每日学习Python算法刷题的同时,了解更多python小知识。

我的个人博客:https://qingfengpython.cn

力扣解题合集:https://github.com/BreezePython/AlgorithmMarkdown

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值