0%

寒假第一天的学习记录

寒假开始学习的第一天,马马虎虎过去了,傍晚手机传来『今日游戏时长已达3h,请放下手机休息』,由此可知今天的学习成果了。若真要细究,昨天做的那些安排,今天真正完成的怕只有关于算法的那一半,FPGA 那部分是根本没碰,我是真心不想搞这个东西,不过为了那一句『做自己不喜欢做的事情,还能做好才是真的厉害』我只能坚持下去,那么明天就得真正做起来。

那么就来看看关于算法,今天到底看了些什么吧?列出如下:

  • 极客时间『数据结构与算法之美』看了两篇,都是关于算法时间复杂度分析的。
  • labuladong 博客中分析的算法刷题框架思维以及刷题思路。
  • leetcode 中 learn 模块下的 Array101 中的 Introduction 部分中的三道题。

最后一项还是在一小时前完成的,算是冲下今天的业绩,不然也太混了。总结下今天的内容。关于时间复杂度,那两篇文章让我大概了解了算法时间复杂度的概念以及简单的分析方法,这种东西属于内功,需要经常练习,有意思的是在编程的过程中我们可以一直思考这个问题,这样写出来的代码一定会更好,具体分析在前面的那篇文章中贴出了别人的看法,我觉得说得挺好。

说的太多,还是要刷题的,不得不说,labuladong 真强啊,老做题家了,真正令我意外的是他是与我同级的人,实在是厉害,对于算法刷题的理解很深刻,我决定按照他推荐的路线去做,培养好自己的刷题框架思维,能够真正解决一些算法题,至于更加底层的理论知识,得空看看吧。在阅读的过程中,我发现递归思维的培养并不容易,我现在写代码都只会按照迭代的思想去做,或许写出来的代码更加高效,但是代码不够优雅,而且太慢了,太容易陷入细节处理之中,递归思维真的是非常必要啊!我已经找到了合适的培养递归思维的刷题路线:结合 labuladong 的文章和 leetcode 中learn 模块下的一些内容,相信在一周以后,我就能形成一个初步的递归思维,今天写的 Array101 正是第一步。

一共写了三道题:Max Consecutive OnesFind Numbers with Even Number of DigitsSquares of a Sorted Array。这三道题都比较简单,也都是 easy 难度,都是通过迭代的方法解决的,值得一提的是最后一道题,需要利用到归并的思想降低复杂度,挺有意思的。

大概就是这些内容了,今天还是没有碰 FPGA,粗略算起来,距离碰它已经过去了近 20 天,手都生了,明天必须得重新捡起来了,不然毕设真做不完了,粗略算起来大概还有两周时间,之后几乎没有时间了,一定要在这段时间内取得突破,即完成第一个版本的译码器,modelsim 下的仿真必须跑通,如果有多余的时间,最好试试真正在 FPGA 板子上跑吧,我老感觉心里没底,这东西我真的能做出来吗?尤其现在我的心思很难放到这上面去……这大概就是那种我无法逃避的事情吧,硬着头皮上咯。