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,766評論 0 33
  • LeetCode 刷題隨手記 - 第一部分 前 256 題(非會員),僅算法題,的吐槽 https://leetc...
    蕾娜漢默閱讀 17,899評論 2 36
  • 1.把二元查找樹轉變成排序的雙向鏈表 題目: 輸入一棵二元查找樹,將該二元查找樹轉換成一個排序的雙向鏈表。 要求不...
    曲終人散Li閱讀 3,352評論 0 19
  • 嘴里面經常哼著熟悉的曲調 有多少是屬于我們共同的歌 見過了許多爭執的愛情 直到我遇見了現在的你 讓我的愛伴著你直到...
    葉威閱讀 264評論 0 0
  • 玫,要結婚了!她的男朋友終于向她求婚了。在一個諾大的電影院里,男友請來了二十多位好朋友一起為他們見證這幸福...
    張果妙閱讀 315評論 0 0