Blog | About | Resume | Github |

I did the Leetcode grind, and got offers from Uber, Facebook, LinkedIn, Nextdoor and WalmartLabs.
Here are the problems that I think are crucial to developing a strong understanding of interview question patterns. **(Remember simply knowing your patterns is half the battle :wink:)**

Also must see (although a little outdated): Arden Dertat’s list.

Problems are grouped according to the concepts required to solve them.

17. Letter Combinations of a Phone Number

247. Strobogrammatic Number II

267. Palindrome Permutation II

347. Top K Frequent Elements (Multiple ways to do it, but bucket sort is important.)

215. Kth Largest Element in an Array

138. Copy List with Random Pointer

173. Binary Search Tree Iterator (Important is achieving the average run-time).

341. Flatten Nested List Iterator

535. Encode and Decode TinyURL

158. Read N Characters Given Read4 II - Call multiple times (also checkout the predecessor to this problem)

211. Add and Search Word - Data structure design

208. Implement Trie (Prefix Tree)

**Tip**: Try coming up with the recursive logic first. Converting that to DP is the easy part.

10. Regular Expression Matching

300. Longest Increasing Subsequence

304. Range Sum Query 2D - Immutable

416. Partition Equal Subset Sum

516. Longest Palindromic Subsequence

583. Delete Operation for Two Strings

Graph related problems are frequently asked, and there are more quality problems out there that you should explore.

215. Kth Largest Element in an Array

Another important category, try to do more problems here.

Quality reading material on this category: Chapter 6 in Competitive Programmer’s Handbook

3. Longest Substring Without Repeating Characters

438. Find All Anagrams in a String

340. Longest Substring with At Most K Distinct Characters

Good reading on this topic: Sourab Reddy’s Medium post

It is a good idea to practice doing preorder, inorder and postorder traversals both iteratively and recrusively. Helps a great deal with approaching tree problems.

Most tree problems are simple tweaks on a type of traversal, or simple DFS/BFS.

98. Validate Binary Search Tree

236. Lowest Common Ancestor of a Binary Tree

103. Binary Tree Zigzag Level Order Traversal

102. Binary Tree Level Order Traversal

199. Binary Tree Right Side View

94. Binary Tree Inorder Traversal

230. Kth Smallest Element in a BST

144. Binary Tree Preorder Traversal

515. Find Largest Value in Each Tree Row

141. Linked List Cycle The O(N) with constant space trick is intresting and has applications in many Linked List problems.

121. Best Time to Buy and Sell Stock

238. Product of Array Except Self

33. Search in Rotated Sorted Array

19. Remove Nth Node From End of List

636. Exclusive Time of Functions

150. Evaluate Reverse Polish Notation

29. Divide Two Integers Careful about overflows!

426. Convert Binary Search Tree to Sorted Doubly Linked List

166. Fraction to Recurring Decimal

34. Find First and Last Position of Element in Sorted Array

209. Minimum Size Subarray Sum

852. Peak Index in a Mountain Array

325. Maximum Size Subarray Sum Equals k