Leetcode一刷纪念

这个夏天除了出国准备,时间基本都用在写Leetcode上。从6月28日到8月25日,终于写完了非premium部分的300多题,解答全部用C++编写,备份在Github上:

https://github.com/kophy/Leetcode

严格来说这次不算一刷,大三找实习时写过大约60题,之后找到实习了主要是水平太低各种不会就没有写完。实际上这次也经常不会,不少hard题干脆就是“读题->理解别人的solution->改写”的三步走,所以等到美帝安顿下来,还得用碎片时间二刷。

现在思考下来,觉得Leetcode难,并不是因为需要深厚的知识储备(或者说广度),实际上操作的数据结构就是数组、链表、hash表、栈、队列、树,最多加上优先队列和集合,常用的算法也不过双指针、递归、动态规划、回溯以及图上的BFS、DFS、拓扑排序,偶尔有生僻的算法如reservoir sampling,但那也就1道。

Leetcode的难,体现在需要深入理解算法,让算法“活”起来。打个比方,好像英语考试里的完形填空,仅仅知道选项的含义是不够的,还要考虑语境和时态。所以个人觉得Leetcode的分类做得不太准,了解回溯法的话,可以轻松手撕hard的N皇后问题,但要深刻理解动态规划才能解好medium的几道股票题。

这次刷题也几次想放弃,不过坚持下来,或许算迈出了从0到0.001的一小步?

在听高桥优的「光の破片」,很适合这一段旅程结束与另一段旅程开始的交接点。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容