Hello Mr.J——利特寇德 sama no mercy

从3月开始下决心开始刷leetcode的题,陆陆续续的做了将近3个月,赶上了4、5月份的每日一题的挑战,再加上自己额外尝试写python和scala的解题方案,这些日子还是比较充实的。
整体下来就是一个感受:人菜瘾大!
开始计划是每2天一道,先从easy做起,做起来轻松加愉快,除了硬抠算法的执行速度之外,还有时间能看看其他人的解决方案,尝试写出多种语言的代码,再加上前期疫情原因工作不多,整体时间都偏向于自己学东西,每天都有进步还是挺有成就感的。
后期开始追着每日挑战开始做,问题开始逐渐暴露,随着题目难度的上升,问题判断角度不对,基础算法和数据结构练习不够等等问题,每天看着不会的题目,没有思路,或者有点思路一运行就超时,越做越难受,陷入死循环中。
难受归难受,也接触到了很多以前没注意的东西,比起“学到了什么知识”来作为总结的话我觉得“拓展了视野”更符合我的情况吧。
比如当时做136题的时候,见识到了天秀异或解法;做146题的时候第一次用了有序的map LinkedHashMap;做202题的时候,了解到原来找到循环还有快慢指针的方案;还有一些常规操作,比如算每个字母出现次数的方式,以前都是用的map做记录,现在学到了可以把字母转换成ASCII码,做数组下标,一样也能实现kv的功能;做二维矩阵200的操作的时候,可以当成树来做深度优先搜索。
还有动态规范的题印象比较深刻,所有的动态规划都是在找两个东西,初始值和递推关系式,个人感觉难的不是找到这两个东西,而是能找到把问题转换为动态规划的角度,找对了角度,自然两个关键点就出现了。
回头看了一眼项目,看上去做了两个多月,原来才70道题,还有很多题现在再看反而没了思路,冲leetcode的天梯可比冲dota2的天梯难多了,这篇就算一个小小的里程碑吧,停了半个多月缓了缓,把公司的需求都了结了,后面准备看看《算法导论》,然后继续2天一题,仔细再做做,把某些类型的题整理到一起也写写总结吧。
【Hello Mr.J——利特寇德 sama no mercy】以上

    推荐阅读