iT邦幫忙

鐵人檔案

第 12 屆 iThome 鐵人賽
回列表
Software Development

天天 LeetCode,立地成佛:三十天從頭開始學演算法 系列

大家都知道演算法很重要,既然躲不掉,不如早死早超生儘早開始吧。

參賽天數 12 天 | 共 12 篇文章 | 4 人訂閱 訂閱系列文 RSS系列文
DAY 1

[Day 1] 不是在摸魚,但認識環境真的很重要

對於軟體工程師來說,演算法絕對是很重要的。既然早晚都要學,不如就趁早開始面對它吧(所謂早死早超生) 這系列文章主要是 LeetCode 的解題筆記,每天會有一些...

2020-09-08 ‧ 由 caelia 分享
DAY 2

[Day 2] Two Sum:暴力解不難,但善用 dictionary 讓你更輕鬆

講到 LeetCode,大部分人共同的回憶(以及共同的起點)大概就是 two Sum 了吧。這題會給一個陣列以及一個數字,我們要找的,就是陣列中哪兩個數字加起來...

2020-09-09 ‧ 由 caelia 分享
DAY 3

[Day 3] Sort an Array:大事化小小事化無的解決法,Divide and Conquer

今天要面對的問題是 Sort an Array,一句話解釋呢,就是把拿到的陣列依照大小排列好,然後傳回去。這個問題用 javascript 超級簡單,不信你看:...

2020-09-10 ‧ 由 caelia 分享
DAY 4

[Day 4] 常常出現在第一章的複雜度是什麼可以吃嗎

今天不解題,但是講講複雜度。複雜度是拿來衡量演算法效率的東西,簡單來說,可以想像成完成這個解法所要執行的運算次數。例如給定資料筆數為 n 的情況下,有的演算法要...

2020-09-11 ‧ 由 caelia 分享
DAY 5

[Day 5] Climbing Stairs:從下而上的 Dynamic Programming

今天要講的是 Dynamic Programming。 Dynamic Programming 在某種程度上來說,也是一種把大問題切成小問題的演算法。但和 Di...

2020-09-12 ‧ 由 caelia 分享
DAY 6

[Day 6] Jump Game:有種直觀解法叫 Greedy

今天要介紹和 Dynamic Programming 有點相似的 Greedy。 Greedy 的核心概念很簡單:選擇你覺得最好的方案就對了。這個選擇的過程是單...

2020-09-13 ‧ 由 caelia 分享
DAY 7

[Day 7] Maximum Depth of Binary Tree: 走進 tree 的世界

今天介紹一種叫做 Tree 的資料結構,這東西看圖懂一半,所以不解釋直接上圖: (圖片摘自維基百科) 好的,大家應該懂了。Tree 就是一種由上而下的結構,點和...

2020-09-14 ‧ 由 caelia 分享
DAY 8

[Day 8] Construct Binary Tree:樹的遍歷

延續昨天的內容,這邊先貼上示意圖讓大家回憶一下 tree 的結構: (圖片摘自維基百科) 在搜尋的時候,主要有兩種不同的搜尋策略:深度遍歷 DFS(Depth-...

2020-09-15 ‧ 由 caelia 分享
DAY 9

[Day 9] Longest Substring Without Repeating Characters:簡單講點 two pointer

瀕臨死亡的一天,只好翻開覆蓋過的題目結束這一回合。每天都在踩線的邊緣反覆橫跳並且懷疑人生,距離脫離苦海還有三個星期(崩潰)。 還是簡單講一下,主要用到的東西是第...

2020-09-16 ‧ 由 caelia 分享
DAY 10

[Day 10] Number of Islands:DFS 初探

今天的題目給出一個用文字表示的圖形,當中 1 表示陸地,0 表示海水。相鄰的 1 (上下相鄰或左右相鄰都算)會組成一大塊島嶼,我們要找出的是,題目中共有幾座不相...

2020-09-17 ‧ 由 caelia 分享