The journey of grinding LeetCode.
- Data Structure:
- String: string manipulation
- Array: two pointers, sliding window, searching, in-place modification
- Tree
- Graphs
- Hash Table
- Chaining
- Open Addressing
- Linear Probing
- Quadratic Hashing
- Double Hashing
- Stack
- Queue
- Linked List
- Heap
- Set
- Ordered Set
- UnOrdered Set
- LRU Cache
- Ring Buffer
- Problem Solving Techniques:
- Divide and Conquer
- Dynamic Programming: Top down / Bottom Up
- Backtracking
- Recursion
- Two Pointers
- Binary Search
- Greedy
- Tree Traversal (Recursive/Iterative)
- Search:
- Binary Search
- DFS
- BFS
- KMP (Knuth–Morris–Pratt algorithm, for string matching)
- Sort:
- Selection Sort
- Insertion Sort
- Bubble Sort
- Quick Sort
- Merge Sort
- Heap Sort
- Graph:
- Shortest Path
- Cycle Detection (directed / undirected)
- Bit Manipulation
- Object Oriented Programming
- Class & Object
- Access Modifier:
public
,protected
,private
- Constructor
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism