epi
Covers all chapters and topics from the "Elements of Programming Interviews" book with their corresponding Leetcode problem links
Chapter 5: Arrays
5.1
Dutch National Flag
5.2
Increment an arbitrary precision integer
5.3
Multiply two arbitrary precision integers
5.4
Advancing through an array
5.5
Delete duplicates from a sorted array
5.6
Buy and Sell a stock once
5.7
Buy and Sell a stock twice
5.8
Computing an alternation
5.9
Enumerate all primes to n
5.10
Permute the elements of an array
5.11
Compute the next permutation
5.17
The Sudoku checker problem
5.18
Compute the spiral ordering of a 2D array
5.19
Rotate a 2D array
5.20
Compute rows in Pascal's Triangle
Chapter 6: Strings
6.1
Interconvert strings and integers
6.2
Base conversion
6.3
Compute the spreadsheet column encoding
6.5
Test palindromicity
6.6
Reverse all the words in a sentence
6.7
Compute all mnemonics for a phone number
6.8
The look-and-say problem
6.9
Convert from Roman to decimal
6.10
Compute all valid IP addresses
6.11
Write a string sinusoidally
6.12
Implement run-length encoding
6.13
Find the first occurrence of a substring
Chapter 7: Hash Tables
7.1
Test for palindromic permutations
7.2
Is an anonymous letter constructible?
7.3
Implement an ISBN cache
7.4
Compute the LCA, optimizing for close ancestors
7.5
Find the nearest repeated entries in an array
7.6
Find the smallest subarray covering all values
7.7
Find smallest subarray sequentially covering all values
7.8
Find the longest subarray with distinct entries
7.9
Find the length of a longest contained interval
7.10
Compute all string decompositions
Chapter 8: Stacks and Queues
8.1
Implement a stack with max API
8.2
Evaluate RPN expressions
8.3
Test a string over "{,},(,),[,]" for well-formedness
8.4
Normalize pathnames
8.5
Compute buildings with a sunset view
8.6
Compute binary tree nodes in order of increasing depth
8.7
Implement a circular queue
8.8
Implement a queue using stacks
Chapter 9: Binary Trees
9.1
Test if a binary tree is height-balanced
9.2
Test if a binary tree is symmetric
9.3
Compute the lowest common ancestor in a binary tree
9.4
Compute the LCA when nodes have parent pointers
9.5
Sum the root-to-leaf paths in a binary tree
9.6
Find a root to leaf path with specified sum
9.7
Compute the kth node in an inorder traversal
9.8
Compute the successor
9.9
Implement an inorder traversal without recursion
9.10
Implement a preorder traversal without recursion
9.11
Implement a postorder traversal without recursion
9.12
Compute the right sibling tree
Chapter 10: Heaps
10.1
Merge sorted files
10.3
Sort an almost-sorted array
10.4
Compute the k closest stars
10.5
Compute the median of online data
10.6
Compute the k largest elements in a max-heap
Chapter 11: Searching
11.1
Search a sorted array for first occurrence of k
11.2
Search a sorted array for entry equal to its index
11.3
Search a cyclically sorted array
11.4
Compute the integer square root
11.6
Search in a 2D sorted array
11.8
Find the kth largest element
11.10
Find the duplicate and missing elements
Chapter 13: Sorting
13.1
Compute the intersection of two sorted arrays
Last updated