代码随想录一刷总结

今天终于完成了代码随想录的一刷,有点小成就感的同时也有点小不舍。

代码随想录应该是自从我考上研以后,坚持最久的一件事了哈,每天打开视频听到那句熟悉的“大家好,这里是代码随想录,我是程序员卡尔…”新的一天就从这里开始,哈哈。卡哥讲的真的很好,同时在知识星球上也很耐心的解答疑惑、缓解焦虑,在求职的路上能够遇到这样一位领路人,何尝不是一种幸运呢?

研一的时候,虽然也上过算法设计与分析的课,但完全是半懂不懂的状态,期末考试全靠背。刷完代码随想录后,我印象最深刻的就是二叉树和动态规划。

以前啊,递归这个东西,我怎么都理解不了,向老师提问,总是得到一句笼统的“自己调用自己”,对于其中的工作机理,是完全不了解。现在,终于有了比较清晰的理解,用自己的话来说就是,调用递归函数是一次次压入栈中,不停的调用和返回,最后得到最先调用时候的需要获取的值。

还有就是动态规划,在刷代码随想录之前,反正除了dp这两个字母以外,其他的是一概不记得了。以前的期末考试的时候也挺好笑的,考前在寝室里跟室友像背政治一样狠狠背代码,结果就是学了等于没学。以其中的01背包问题为例,我终于清楚地明白了递推公式,对当前物品,是有拿和不拿的情况。以前总是傻了吧唧的觉得,为什么不拿啊,拿了不是价值更大嘛?那是因为以前没理解dp数组的含义,是在前i个物品中任取,考虑范围是前i个物品,而不是前i个物品都拿(要是这样,还有什么动态规划算法)。拿了当前物品,因为会占背包空间,势必前面的物品要少拿,那么拿了当前物品的总价值高,还是多拿前面物品不拿当前物品的总价值高,就需要比较后做取舍了,这就是01背包的核心思想。

当然,代码随想录的其他部分也为我完善了自己的算法知识框架,如链表、哈希表、回溯、贪心等等。回头看这两个月,我认为非常值得,也许不能像每日任务中所说“迎来蜕变”,但确确实实感受到了自己的进步,在未来的二刷、三刷中我还会继续巩固和提高自己的算法能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值