Zoe Ding's Blog

High Frequency

API Design/System Design

146. LRU Cache
REDO: 460. LFU Cache
295. Find Median from Data Stream
380. Insert Delete GetRandom O(1)
981. Time Based Key-Value Store
TODO: 362. Design Hit Counter
TODO: 227. Basic Calculator II
TODO: 642. Design Search Autocomplete System

Array

TODO: 759. Employee Free Time
TODO: 239. Sliding Window Maximum

15. 3Sum
TODO: 16. 3Sum Closest
238. Product of Array Except Self
TODO: 31. Next Permutation
REDO: 346. Moving Average from Data Stream: Sliding Window + Previous Sum
REDO: 560. Subarray Sum Equals K: Prefix Sum

Sort:

Merge Sort
Quick Sort

Pointers:

283. Move Zeroes
REDO: 75. Sort Colors
27. Remove Element
26. Remove Duplicates from Sorted Array
80. Remove Duplicates from Sorted Array II

Scenes:

11. Container With Most Water
TODO: 42. Trapping Rain Water
1762. Buildings With an Ocean View
1570. Dot Product of Two Sparse Vectors
TODO: 218. The Skyline Problem

Intervals:

56. Merge Intervals
57. Insert Interval
252. Meeting Rooms
253. Meeting Rooms II
REDO: 163. Missing Ranges
TODO: 435. Non-overlapping Intervals

Hash Table:

128. Longest Consecutive Sequence

Matrix:

TODO: 36. Valid Sudoku

Greedy:

134. Gas Station
REDO: 621. Task Scheduler
REDO: 406. Queue Reconstruction by Height

Backtracking:

REDO: 39. Combination Sum
REDO: 301. Remove Invalid Parentheses
REDO: 282. Expression Add Operators: Backtracking (DFS)
131. Palindrome Partitioning

Math:

TODO: 50. Pow(x, n)

Others:

189. Rotate Array
TODO: 525. Contiguous Array

String

REDO: 157. Read N Characters Given Read4
REDO: 158. Read N Characters Given Read4 II - Call multiple times
REDO: 205. Isomorphic Strings
TODO: 647. Palindromic Substrings
REDO: 271. Encode and Decode Strings
REDO: 408. Valid Word Abbreviation
REDO: 388. Longest Absolute File Path
REDO: 246. Strobogrammatic Number
REDO: 247. Strobogrammatic Number II
REDO: 13. Roman to Integer: String
REDO: 12. Integer to Roman: String
TODO: 273. Integer to English Words

Sliding window:

REDO: 76. Minimum Window Substring
REDO: 438. Find All Anagrams in a String
REDO: 3. Longest Substring Without Repeating Characters
REDO: 30. Substring with Concatenation of All Words
REDO: 159. Longest Substring with At Most Two Distinct Characters
TODO: 340. Longest Substring with At Most K Distinct Characters

704. Binary Search
4. Median of Two Sorted Arrays
33. Search in Rotated Sorted Array
REDO: 34. Find First and Last Position of Element in Sorted Array
REDO: 278. First Bad Version
TODO: 81. Search in Rotated Sorted Array II
TODO: 153. Find Minimum in Rotated Sorted Array

Linked List

206. Reverse Linked List

K-way merge:

23. Merge k Sorted Lists

Heap

347. Top K Frequent Elements
215. Kth Largest Element in an Array
973. K Closest Points to Origin

Stack

150. Evaluate Reverse Polish Notation

REDO: 84. Largest Rectangle in Histogram
REDO: 739. Daily Temperatures
REDO: 32. Longest Valid Parentheses
REDO: 394. Decode String
REDO: 735. Asteroid Collision

Graph

DFS Recursion:

79. Word Search
212. Word Search II
200. Number of Islands
51. N-Queens
TODO: 332. Reconstruct Itinerary

BFS:

127. Word Ladder
TODO: 126. Word Ladder II
542. 01 Matrix
TODO: 417. Pacific Atlantic Water Flow
733. Flood Fill

Connectivity:

130. Surrounded Regions
200. Number of Islands
286. Walls and Gates

Topology Sorting:

269. Alien Dictionary
207. Course Schedule

Skiplist/Graph copy:

138. Copy List with Random Pointer
133. Clone Graph

Tree

110. Balanced Binary Tree

REDO: 98. Validate Binary Search Tree
TODO: 426. Convert Binary Search Tree to Sorted Doubly Linked List

Tree Path:

112. Path Sum
113. Path Sum II
REDO: 129. Sum Root to Leaf Numbers
REDO: 437. Path Sum III
124. Binary Tree Maximum Path Sum
TODO: 687. Longest Univalue Path
TODO: 543. Diameter of Binary Tree

Serialization and Deserialization of Tree:

103. Binary Tree Zigzag Level Order Traversal
297. Serialize and Deserialize Binary Tree
449. Serialize and Deserialize BST
428. Serialize and Deserialize N-ary Tree

TODO: 105. Construct Binary Tree from Preorder and Inorder Traversal
TODO: 106. Construct Binary Tree from Inorder and Postorder Traversal

270. Closest Binary Search Tree Value
TODO: 272. Closest Binary Search Tree Value II

LCA:

235. Lowest Common Ancestor of a Binary Search Tree
236. Lowest Common Ancestor of a Binary Tree

Dynamic Programming

121. Best Time to Buy and Sell Stock
53. Maximum Subarray
91. Decode Ways
55. Jump Game
45. Jump Game II
62. Unique Paths
198. House Robber
213. House Robber II
139. Word Break. *
*140. Word Break II
72. Edit Distance
161. One Edit Distance
221. Maximal Square
279. Perfect Squares
TODO: 377. Combination Sum IV
TODO: 303. Range Sum Query - Immutable
TODO: 523. Continuous Subarray Sum

Longest Common Substring:

300. Longest Increasing Subsequence
1143. Longest Common Subsequence

Palindromic:

647. Palindromic Substrings: String, DP similar
TODO: 516. Longest Palindromic Subsequence
REDO: 5. Longest Palindromic Substring

Knapsack:

416. Partition Equal Subset Sum
322. Coin Change 494. Target Sum

Advanced

Trie:

208. Implement Trie (Prefix Tree)
211. Add and Search Word - Data structure design

Segment Tree:

TODO: 307. Range Sum Query - Mutable