- Knowledge of basic Data Structure and Algorithm
- Understand the implementation of various data structures
- Know how to implement algorithms using data structures
Array -> Linked List -> Stack -> Queue -> Recursion -> Sort -> Binary Search -> Hash -> String -> Binary Tree -> Heap -> Map -> Back Tracking -> Divid-and-Conquer -> Dynamic Programming
-
STAGE ONE
- Task 1 (2 Days): Array
- Task 2 (2 Days): Linked List
- Task 3 (2 Days): Stack
- Task 4 (3 Days): Queue + Recursion
- Task 5 (3 Days): Sorting
- Task 6 (2 Days): Binary Search
-
STAGE TWO
- Task 7 (3 Days): Hash
- Task 8 (2 Days): String
- Task 9 (2 Days): Binary Tree
- Task 10 (2 Days): Heap
-
STAGE THREE
- Task 11 (4 Days): Map
- Task 12 (3 Days): Recursion + Back Tracking + Divide-and-Conquer
- Implement an Array, which supports expansion of storage capacity, dynamically ▸
- Combine two sorted arrays into a sorted one ▸
- Implement a LinkedList ▸
- To Reverse a LinkedList ▸
- Merge two sorted LinkedList to a sorted one ▸
- Find the middle value of a LinkedList ▸
- Queue
- Implement a Queue ▸
- Implement a Cycle Queue
- Recursion
- Queue
- Recursion
- Implement Bubble Sort ▸
- Implement Selection Sort ▸
- Implement Insersion Sort ▸
- Implement Merge Sort ▸
- Implement Quick Sort ▸
- (*)Implement Heap Sort
- (review)Sliding Window Maximum
- Find the k-th Largest Number with O(n) Complexity
- Implement Binary Search on sorted list ▸
- Implement a
fuzzy
Binary Search algorithm (Search the first item that is larger than or equal to the given item) ▸
- (review) Sliding Window Maximum
- Sqrt(x)
- Implement a Hash table using LinkedList to solve hash collision ▸
- Implement a LRU cache elimination algorithm ▸
- Implement a Character Repertoire containing 26 english letters using
Trie
tree ▸ - Implement a simple string matching algorithm ▸
- Implement a Binary Tree, supporting insert, delete and search methods ▸
- Find the successor/predecessor node of a node in a tree
- Implement the preorder, indorder, postorder and layer traversal ▸
- Complete leecode 98, 102, 107
- Implement a Min Heap or Max Heap or Priority Queue ▸
- Write a heap sort algorithm ▸
- Merge k sorted list using priority queue ▸
- Find the top-k largest number in a collection of numbers ▸
- Implement a Graph using
adjacent list
representation ▸ - Implement the following two searching algorithms on a graph
- Implement the Dijkstra Algorithm ▸
- Implement Topological Sorting ▸
- Recursion
- Climb Stairs ▸
- Backtracking
- Divide & Conquer
- Calculate the number of reversed order pairs in a set of data