作為程式入門小白,想進一步了解資料結構與演算法。本次參賽會以udemy上的課程: The complete Data Structures and Algorithms Course in Python 為主,其餘書籍為輔來撰寫30天的閱讀筆記。
圖由vertices(or nodes)和連結nodes間的edges組成。以下是有關圖的一些名詞介紹: Vertices (vertex): 圖上的節點 E...
當今天遇到一個情況是,事件間是有依賴性/方向性(B事件發生前一定要A事件),譬如說排課系統,有些課會有需要預修的課(譬如說,要修電磁學前要修過微積分、線性代數、...
單源對短路徑問題(single source shortest path problem, sssp)為給一個vertex(called source),找到去...
接下來我們在這裡要介紹一些比較雜的演算法像是Floyd Warshall algorithm, minimum spanning tree(MST), Krus...
我們前面其實已經用了不少貪婪演算法(e.g. Prim’s, Kruskal algorithm, Dijkstra’s algorithm......),從前...
分冶法將大問題分解成許多類似的小問題,然後再以遞迴的方式分別解決這些小問題,並把他們的解決方案合併起來得到原問題的解決方案。像我們之前學的merge sort和...
動態規劃為一解決問題的方法,他將大問題分成小且有重疊的問題,然後將這些小問題的解儲存起來(可以是陣列或者是字典),由此避免重複計算,每當遇到一樣的問題,可以回去...
回溯法(backtracking)是一種用解決問題的演算法,它通常會窮舉不同的可能性,並在達到某條件時回退(backtrack)到達之前的狀態,接著繼續搜索。因...
那最後兩天,我們來做幾個LeetCode簡單的練習題,可以順便增加信心,其他大家自行去挑戰,解法有很多,其他人的方法有很大的機會會比我的好~:Linked Li...
最後一天,我們繼續做幾題相對簡單的LeetCode練習題吧!挑選的題目主要都是前面文章涵蓋的主題,如果有不熟的部分,可以回去看前面幾天的文章。然後答案沒有一定,...