談算法與數據結構的學習

算法與數據結構曾是我薄弱的一塊,甚至產生過畏難情緒、一度懷疑本身是否可以掌握這方面技能。算法

 

18年8月,我下決心經過作LeetCode題目去理解經常使用算法和數據結構,並掌握它們的應用方法。數組

 

一年多的時間裏,總共完成1,000+道題,爲加深對不一樣算法的理解,部分題目用不一樣方式作了2~3遍。從剛開始刷簡單題目都以爲困難,到如今能較順利完成中等難度的題目。數據結構

 

過程當中對各類常見算法和數據結構的應用套路做了總結:ide

數組(Array)學習

鏈表(List)指針

哈希表(HashTable)排序

堆棧(Stack)遞歸

隊列(Queue)隊列

堆和優先級隊列(Heap and Priority Queue)ip

二叉樹(Binary Tree)

二叉查找樹(Binary Search Tree)

字典樹(Trie)

圖(Graph)

----

雙指針(Two Pointers)

滑動窗口(Sliding Window)

排序(Sort)

遞歸(Recursion)

貪心(Greedy)

分治法(Divide and Conquer)

折半查找(Binary Search)

回溯(Backtracking)

深度優先搜索(DFS)

廣度優先搜索(BFS)

合併查找(Union Find)

拓撲排序(Topological Sort)

位運算(Bit Manipulation)

 

學習算法和數據結構,其自己有不少難的知識點,須要理解、消化與掌握。更重要地,克服本身的畏難情緒,面對一項咱們迫切想掌握的知識與技能,一點點作起。

 

幹就完事了

相關文章
相關標籤/搜索