Master LeetCode Patterns
Ace your coding interviews with our comprehensive DSA patterns guide
Two Pointers
Master the two pointers technique for solving array and string problems efficiently.
Sliding Window
Learn how to optimize solutions using the sliding window pattern for subarray problems.
Binary Search
Understand when and how to apply binary search beyond simple sorted array searches.
Data structure | Access | Insert | Delete | Search | Traverse |
---|---|---|---|---|---|
Linear | |||||
Array | O(1) | O(1) | O(n) | O(n) | O(n) |
Ordered array | O(1) | O(n) | O(n) | O(logn) | O(n) |
Linked list | O(n) | O(1) | O(n) | O(n) | O(n) |
Matrix | O(1) | O(1) | O(1) | O(m*n) | O(m*n) |
Stack | O(1) | O(1) | O(1) | O(n) | O(n) |
Queue | O(1) | O(1) | O(1) | O(n) | O(n) |
Non-linear | |||||
Tree | O(n) | O(1) | O(n) | O(n) | O(n) |
Balanced tree | O(logn) | O(logn) | O(logn) | O(logn) | O(n) |
Graph | O(V) | O(1) | O(V+E) | O(V+E) | O(V+E) |
Trie | O(s) | O(s) | O(s) | O(s) | O(n*s) |
Suffix trie | O(s) | O(s) | O(s) | O(s) | O(s^2) |
Algorithms | Time | Space | Used area |
---|---|---|---|
Sorting | |||
Bubble, Selection, Insertion | O(n^2) | O(1) | Simple sort |
Merge sort | O(n*logn) | O(n) | Stable sort |
Quick sort | O(n*logn) | O(logn) | Quick sort |
Searching | |||
Linear search | O(n) | O(1) | Search in non-sorted array |
Binary search | O(logn) | O(1) | Search in sorted array |
Recursion | |||
Factorial | O(n) | O(n) | Math |
Valid parentheses | O(Cn) | O(Cn) | String |
Permutation | O(n!) | O(n!) | Array, String |
All subsets | O(2^n) | O(2^n) | Array, String |
Dynamic Programming | |||
Fibonacci | O(n) | O(1) | Math |
Knapsack | O(n*w) | O(n*w) | Array |
Edit distance | O(s*t) | O(t) | String |
Num of unique paths in matrix | O(m*n) | O(n) | Matrix |
Company-Specific Focus Areas
- Graph Algorithms
- Dynamic Programming
- Trees (especially balanced BSTs)
- Recursion and Backtracking
- String Manipulation
Microsoft
- Binary Trees and BSTs
- Graph Traversals (BFS/DFS)
- Dynamic Programming
- Arrays and Strings
- System Design
Amazon
- Arrays and Hash Tables
- Trees (especially Binary Search Trees)
- Graphs (BFS/DFS)
- Dynamic Programming
- Object-Oriented Design
Flipkart
- Arrays and Strings
- Hash Tables
- Linked Lists
- Trees and Graphs
- Dynamic Programming
Meta
- Arrays and Strings
- Graphs (especially BFS/DFS)
- Dynamic Programming
- Hash Tables
- Binary Search
Oracle
- SQL Optimization
- Trees and Graphs
- Arrays and LinkedLists
- Hash Tables
- Dynamic Programming
Cisco
- Networking Algorithms
- Trees and Graphs
- Dynamic Programming
- Arrays and Strings
- System Design
Atlassian
- Arrays and Strings
- Hash Tables
- Trees and Graphs
- Sorting and Searching
- Object-Oriented Design
Salesforce
- Array Manipulation
- Hash Tables
- Trees and Graphs
- Dynamic Programming
- SQL and Database Concepts