iT邦幫忙

2021 iThome 鐵人賽

DAY 30
0
Software Development

我在刷LeetCode時邂逅了Python系列 第 30

Day 30:結束後的下一步

回顧 & 總結

今天是最後一天了,來回顧一下這些日子分享及學習的內容,雖然是寫LeetCode的題目為主,但在過程中每天的題目是有選過主題的,一天一天都有更深入資料結構及演算法相關的內容,希望這些日子分享的內容除了解題外有帶給各位夥伴資料結構及演算法的基本概念。

LeetCode

Day1:開始前的準備,提到了自己在 LeetCode 裡面是如何去選擇題目的。Day2 時也分享了平常在做題目時解題介面上會注意的幾個地方。Day7 補充了題目說明中 Follow-up 的部份是給解題者額外更難的挑戰,Day 13 時補充了 Tree 相關的題目如何使用 LeetCode 提供的 Tree Visualizer

Sorting

過程中的一開始,Day3 ~ Day4我們是從排序開始走的,這兩天分享了 Selection SortInsertion Sort 兩種基本排序,其實還有像 Bubble Sort 氣泡排序法是沒有提到的,但它的效率極差,有些題目實作時用這個方法還會超時,有興趣也可以稍微去了解它的運作過程,另外在 Day25 分享 Divide and Conquer 時有提到另外一種排序方法 Merge Sort

Stack & Queue & Heap

之後我們進入了幾種重要的資料結構題目,Day5 ~ Day9 我們從 StackQueueHeap 一連串資料結構分享,並且用 Stack 去實作 Queue、用 Queue 去實作 Stack,講到 Heap 之後接著也帶開始第一次接觸到了跟 Tree 相關的內容,也因為這樣我們進入了下一個重點主題 Tree。

Tree

Tree是很重要的觀念,從 Day10 ~ Day12 開使除了分享 Tree 的實際長相外,提到了 Depth-First Search 中的PreorderInorderPostorder 三種 Traversal,在 Day 14 時也提到了 Breadth-First Search 中會看到的 Level-Order Traversal,到了 Day15 也做了一個 Traversal 的總結。Day16 ~ Day18 開始分享了一種有原則的樹 Binary Search Tree

Algorithm

分享完 Tree 等等資料結構後,我們在 Day19 ~ Day26 開始接觸了五種很常見的演算法 EnumerationBacktrackingGreedyDivide and ConquerDynamic Programming,我想在這個期間應該是最辛苦的一段時間,每種演算法都有它難理解的部份,實做題目時更是有複雜的邏輯在裡面需要去想。

Bit

我想這個主題應該是個番外篇,在本系列文中我們也提到了 Bit 的概念,因為在過程中我們接觸到了 Binary Watch 及 Bit 中 XOR 的邏輯運算,所以在 Day22 時也分享了 Bit 相關的基本概念。

Hash

走到了最後,我們在 Day27 ~ Day29 接觸到了 Hash 相關的題目,從 Hash Function 的重點開始一直到 Hash Table 的使用及 Hash Table 與 Hash Function 之間是什麼關係都走過了,最終在 Day 29 找了一個小小的綜合題去複習 Tree、Traversal、Hash 等等概念結束了本系列文的解題之旅。


下一步

希望走完這些日子,上面的回顧所提到的關鍵字看到都能對他有一個基本的想像。這個解題過程所碰到的 LeetCode 的題目都是 Easy 為主的題目,接下來對於這些主題,可以試著去找一些 Medium 的題目來刷,讓自己更進一步的去理解這些主題,保持對這些題目的熟悉度,當然如果 Medium 玩的差不多也可以試著去挑戰 Hard 的題目。

另外在資料結構與演算法相關的主題,也還有更多在這些日子裡還沒有碰到的,Ex. Graph、Red-Black Tree、String 中的 KMP 字串比對演算法等等,都是接下來可以去瞭解及學習的方向,當然這邊也是舉一些目前常聽到的例子,還有更多值得去學習及瞭解的資料結構與演算法在後面。


結語

感謝鐵人賽讓我過了非常充實的三十天,我對這些主題不到非常專業,有些內容也沒有表達的很好,但每整理一篇文章,我就對一個觀念有更深入的了解,也在過程中培養自己寫文章及整理思緒的能力,也要謝謝這些日子以來有花時間來看我文章的夥伴們,希望這些內容真的對大家有幫助,寫文章有學習到、有幫助到人對我來說都是非常大的鼓勵,接下來我也會繼續努力學習,讓自己有更多知識以後再分享給大家,謝謝各位。

若內容有什麼問題或建議歡迎一起交流:)
感謝您今天願意花時間看完這篇文章~~~~

THE END


上一篇
Day 29:653. Two Sum IV - Input is a BST
系列文
我在刷LeetCode時邂逅了Python30

1 則留言

0
馬達
iT邦新手 4 級 ‧ 2021-10-14 21:14:27

恭喜完賽啦~~~

Mr. YA iT邦新手 5 級 ‧ 2021-10-16 14:20:18 檢舉

/images/emoticon/emoticon41.gif

我要留言

立即登入留言