Skip to main content

Master LeetCode Patterns

Ace your coding interviews with our comprehensive DSA patterns guide

Two Pointers TechniquePointer 1Pointer 2

Two Pointers

Master the two pointers technique for solving array and string problems efficiently.

Sliding Window TechniqueWindow

Sliding Window

Learn how to optimize solutions using the sliding window pattern for subarray problems.

Binary Search TechniqueMid PointLeft HalfRight Half

Binary Search

Understand when and how to apply binary search beyond simple sorted array searches.

Data structureAccessInsertDeleteSearchTraverse
Linear
ArrayO(1)O(1)O(n)O(n)O(n)
Ordered arrayO(1)O(n)O(n)O(logn)O(n)
Linked listO(n)O(1)O(n)O(n)O(n)
MatrixO(1)O(1)O(1)O(m*n)O(m*n)
StackO(1)O(1)O(1)O(n)O(n)
QueueO(1)O(1)O(1)O(n)O(n)
Non-linear
TreeO(n)O(1)O(n)O(n)O(n)
Balanced treeO(logn)O(logn)O(logn)O(logn)O(n)
GraphO(V)O(1)O(V+E)O(V+E)O(V+E)
TrieO(s)O(s)O(s)O(s)O(n*s)
Suffix trieO(s)O(s)O(s)O(s)O(s^2)
AlgorithmsTimeSpaceUsed area
Sorting
Bubble, Selection, InsertionO(n^2)O(1)Simple sort
Merge sortO(n*logn)O(n)Stable sort
Quick sortO(n*logn)O(logn)Quick sort
Searching
Linear searchO(n)O(1)Search in non-sorted array
Binary searchO(logn)O(1)Search in sorted array
Recursion
FactorialO(n)O(n)Math
Valid parenthesesO(Cn)O(Cn)String
PermutationO(n!)O(n!)Array, String
All subsetsO(2^n)O(2^n)Array, String
Dynamic Programming
FibonacciO(n)O(1)Math
KnapsackO(n*w)O(n*w)Array
Edit distanceO(s*t)O(t)String
Num of unique paths in matrixO(m*n)O(n)Matrix

Company-Specific Focus Areas

Google

  • 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