0. Table of Content
Contents
Everything you need to know to prepare for a technical interview. Beginner-friendly tutorial of Data Structure and Algorithm, summary of categorized algorithm questions, and notes for Java and Object Oriented Design.
This repo will be updated as following parts:
- Part 1: Start from basic Data Structure and Algorithm to get good understanding of Recursion, use Two Pointers technique in large mounts of questions and practice sorting algorithms.
- Part 2: Search algorithm, especially graph search. BFS, DFS, pruning, memoization, greedy and dynamic programming.
- Part 3: Popular problems and advanced data structure like Trie, Union Find, TreeSet, TreeMap.
Popular interview algorithm problems summarized by different patterns.
Fundamental
- Introduction to Algorithms in Interview
- Summary of Data Structure
- Iterative in LinkedList
- Binary Search
Recursion
- Introduction to Recursion
- Recursion in LinkedList
- Recursion in Tree
- Recursion to Iterative
Two Pointers
- Two Sum Pattern: Code
- Slow-Fast Pointers
- K-way Merge
- Deduplication
- Sliding Window
- Partition
Sorting
- Merge Sort
- Quick Sort
- Quick Selection
- Bucket Sort and Count Sort
BFS
- Level Order Traversal
- The Shortest Path
- Connected Component
- Topology Sorting
- Best-First Search and Dijkstra
DFS
- Subset
- Permutation
- Parentheses
- Memoization
- Graph Search
DP
- 1D DP
- 2D DP
- Greedy
Popular
-
Merge Intervals
-
Two Heap Pattern
-
Top-K Problem
-
Union Find
-
Data Structure Design
-
Bit Operations