每當大家提到刷題好像都會直接聯想到工作面試感到有壓力,其實刷題可以很有趣,過程也可以學到並複習很多資料結構與演算法的概念。想要用這30天利用leetCode為主加上一些其他討論區的題目為輔,用說題的方式來解析題目背後想要考什麼,一起釐清思緒,探討厲害的前人的思維與技巧,如何把暴力解一步步優化,邁向高效解!
說到廣度優先搜尋我一定要現知道Queue Queue(佇列)是先進來的元素先出去(First In First Out = FIFO)的資料結構,通常用於讓程...
今天直接動手來解題吧!我們從根(root)開始,利用Divide and Conquer來驗證每一個子樹(Subtree),直到我們驗證到最後的葉子。 像是我們...
今天這題題目是國外論壇分享的面試題,其實也是LeetCode-Path Sum的衍生題,直接來刷題吧! 簡單複習一下二元樹 Binary Tree 的特點:...
在實作之前我們先來認識Heap 堆積 (Heap),是一種特殊的完全(complete)二元樹,也就是除了最後一層樹葉,每一層都是長滿的。 而今天要建構的M...
接下來的五天我們會用不同的方式來解這題題目Sort an Array,一起來複習跟朝拜大師們想出來的排序法!從前面開始有關input給了一個array的題目時,...
我們先來用insertion sort algorithm來解題。雖然他的效率也不高,但這是很好理解且實作的演算法。偷渡一下隊友的一篇好文 演算法入門理解下面我...
今天要來實作的快速排序法Quick Sort,雖然不是最佳的(以前學習的時候看到他的名字以為它會是最快的),不過它仍是必須學習的經典。我們就直接開始吧! Inp...
Merge Sort採用Divide and Conquer的方式,其實他的概念本身就是遞迴(recursion)。 Divide and Conquer的作法...
今天要來實作最後一個方法,也就是Heap Sort來解Sort an Array。如果對Heap不熟悉或是已經淡忘的可以回頭先溫一下Day 24:一起來建構Mi...
簡單敘述一下題目:題目會給你一棵BST以及一個數。我們要從這個BST中找出最接近這個數的節點值。 以下圖為例假設題目要我們找出這棵樹中和12最接近的值,用看的可...