LeetCode算法前30题小结

做了Algorithm分类下的前30题。感觉题目还比较适合我,难度的分类也挺准确的,easy的大部分10分钟之内能pass,medium的时间会长一些,hard的题目可能要想得更久一些。

前30题里面印象比较深刻的有几道题,做得很费劲。

一个是前面提到的两个数组中位数的问题。其实想到解法就简单了,但我一开始没有想清楚。还是对这个问题的本质没把握好,不然应该想到能从相同长度的数组推广到两个不同长度的数组的方法。

第10题,正则表达式匹配,花了我好长好长的时间。一方面是一开始对如何回溯没想太清楚,后来才想到应该直接回溯到星号的地方就可以了。另外这题目确实各种边界条件太多,提交了好多次才成功。这要是面试里要求写个bug free的代码,那我肯定挂了。

还有3sum和4sum的问题。2sum是很简单的,但是3sum我一开始觉得应该能有比O(n2)更快的算法,但想了很久也没想出来。最后才知道原来这个问题的下限就是O(n2)。还有就是排序后首尾两个指针,相加的和大于target则尾部指针向前移动,小于target则头部指针向后移动。这个方法有点违反我的直觉,总觉得会漏掉一些解。但其实想明白了就发现就是这么回事。

4sum就相当于两个2sum。但如何去重是很麻烦的。最后直接用HashSet来去重了。

后面几道链表指针的题目都不难。多个Sorted List归并要用到最小堆,一开始想自己写个实现,后来偷懒还是直接用jdk自带的PriorityQueue了。最后比较困扰我的的是生成括号这道题,其实思路很简单,但现在要我不用递归写个回溯感觉很费劲。不像七八年前的状态,全排列我都写不出来了。最后参考了一下递归的写法,简单又清晰。还是递归好哇。

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

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,771评论 0 33
  • LeetCode 刷题随手记 - 第一部分 前 256 题(非会员),仅算法题,的吐槽 https://leetc...
    蕾娜漢默阅读 17,922评论 2 36
  • 1.把二元查找树转变成排序的双向链表 题目: 输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。 要求不...
    曲终人散Li阅读 3,362评论 0 19
  • 嘴里面经常哼着熟悉的曲调 有多少是属于我们共同的歌 见过了许多争执的爱情 直到我遇见了现在的你 让我的爱伴着你直到...
    葉威阅读 269评论 0 0
  • 玫,要结婚了!她的男朋友终于向她求婚了。在一个诺大的电影院里,男友请来了二十多位好朋友一起为他们见证这幸福...
    张果妙阅读 315评论 0 0