原创 雙指針:15. 三數之和

    這本來是做雙指針的16題 最近三數之和,發現這個題目和著名的三數之和很像,所以就返回來先做這個了。 其實思路講出來還蠻簡單的。原本需要3輪for循環,但我們可以在第一輪for循環後,剩下的兩重for循環採用排序+雙指針的方式做,這

原创 雙指針 86. 分隔鏈表(鏈表 dummyhead)

   由於之前做過不少鏈表的題,對這個題目可以說很快就有了思路。 另外,鏈表的題不就是指針指來指去嗎,這樣說都算指針題了 維護兩個鏈表beforeEnd和afterEnd,分別指的是小數尾端和大數尾端 另外的beforeHead和afte

原创 雙指針:283. 移動零

   分析題目: 將0移動到末尾 保持原有數字順序 要in-place 看到這個題目,想到了計數排序的方式,數數有多少個0,放在後面。這點總是沒有問題的。   老是記着原來好像見過類似的題目,由此產生思路: 把數組分爲:無零數區,0區

原创 LeetCode 樹 98. 驗證二叉搜索樹(二叉搜索樹,遞歸,中序遍歷,迭代)

中序。    剛拿到題目時,第一想法是遞歸,但是搞錯了二叉搜索樹成立的條件。 我以爲的條件是:左側樹爲二叉搜索樹,右側樹爲二叉搜索樹,且root.right>root>root.left,然後遞歸。 但是顯然這不對,滿足以上條件後,root

原创 雙指針:167. 兩數之和 II - 輸入有序數組(自帶二分查找函數,格子窮舉 (縮減搜索空間))

   思路:  原來未排序的兩數之和,解法用HashMap是較好的。 現在新加了一個排序過的特性,再聯想起原來的兩重for循環(順序查找) 立馬想到的是第二重查找時使用二分查找,這樣時間複雜度變爲nlogn,空間複雜度爲O1 impor