Videos · DSA
DSA
Sections are patterns, topics are the problems interviewers actually ask: learn the pattern through its classic problems.
189 topics in 21 sections · 1 with hand-picked videos
01Arrays & hashing
02Two pointers
- L1Valid PalindromeSearch ↗
- L2Merge Sorted ArraySearch ↗
- L2Move ZeroesSearch ↗
- L2Valid Word AbbreviationSearch ↗
- L2Valid Palindrome IISearch ↗
- L3Two Sum II - Input Array Is SortedSearch ↗
- L13SumSearch ↗
- L1Container With Most WaterSearch ↗
- L3Sort ColorsSearch ↗
- L3Next PermutationSearch ↗
- L2Trapping Rain WaterSearch ↗
03Sliding window
- L1Best Time to Buy and Sell StockSearch ↗
- L1Longest Substring Without Repeating CharactersSearch ↗
- L2Max Consecutive Ones IIISearch ↗
- L3Minimum Size Subarray SumSearch ↗
- L2Longest Repeating Character ReplacementSearch ↗
- L3Permutation in StringSearch ↗
- L2Find All Anagrams in a StringSearch ↗
- L1Minimum Window SubstringSearch ↗
- L2Sliding Window MaximumSearch ↗
- L3Subarrays with K Different IntegersSearch ↗
04Prefix sum
05Stack & monotonic stack
- L1Valid ParenthesesSearch ↗
- L2Min StackSearch ↗
- L2Simplify PathSearch ↗
- L3Evaluate Reverse Polish NotationSearch ↗
- L2Buildings With an Ocean ViewSearch ↗
- L1Daily TemperaturesSearch ↗
- L1Minimum Remove to Make Valid ParenthesesSearch ↗
- L2Decode StringSearch ↗
- L3Exclusive Time of FunctionsSearch ↗
- L2Basic Calculator IISearch ↗
- L3Largest Rectangle in HistogramSearch ↗
06Binary search
- L1Binary SearchSearch ↗
- L3Kth Missing Positive NumberSearch ↗
- L2Find First and Last Position of Element in Sorted ArraySearch ↗
- L2Find Peak ElementSearch ↗
- L1Koko Eating BananasSearch ↗
- L2Find Minimum in Rotated Sorted ArraySearch ↗
- L1Search in Rotated Sorted ArraySearch ↗
- L3Find K Closest ElementsSearch ↗
- L2Time Based Key-Value StoreSearch ↗
- L3Split Array Largest SumSearch ↗
- L3Median of Two Sorted ArraysSearch ↗
07Linked list
- L1Reverse Linked ListSearch ↗
- L1Merge Two Sorted ListsSearch ↗
- L1Linked List CycleSearch ↗
- L2Palindrome Linked ListSearch ↗
- L2Remove Nth Node From End of ListSearch ↗
- L3Reorder ListSearch ↗
- L2Add Two NumbersSearch ↗
- L2Copy List with Random PointerSearch ↗
- L3Find the Duplicate NumberSearch ↗
- L3Reverse Nodes in k-GroupSearch ↗
08Trees
- L3Invert Binary TreeSearch ↗
- L1Maximum Depth of Binary TreeSearch ↗
- L2Diameter of Binary TreeSearch ↗
- L2Range Sum of BSTSearch ↗
- L3Lowest Common Ancestor of a Binary Search TreeSearch ↗
- L1Binary Tree Level Order TraversalSearch ↗
- L2Binary Tree Right Side ViewSearch ↗
- L2Binary Tree Vertical Order TraversalSearch ↗
- L1Validate Binary Search TreeSearch ↗
- L3Kth Smallest Element in a BSTSearch ↗
- L1Lowest Common Ancestor of a Binary TreeSearch ↗
- L2Lowest Common Ancestor of a Binary Tree IIISearch ↗
- L2Nested List Weight SumSearch ↗
- L3Convert Binary Search Tree to Sorted Doubly Linked ListSearch ↗
- L3Construct Binary Tree from Preorder and Inorder TraversalSearch ↗
- L2Binary Tree Maximum Path SumSearch ↗
- L2Serialize and Deserialize Binary TreeSearch ↗
09Tries
10Heap / priority queue
- L3Kth Largest Element in a StreamSearch ↗
- L1Kth Largest Element in an ArraySearch ↗
- L1Top K Frequent ElementsSearch ↗
- L3Top K Frequent WordsSearch ↗
- L2K Closest Points to OriginSearch ↗
- L2Task SchedulerSearch ↗
- L3Reorganize StringSearch ↗
- L1Merge k Sorted ListsSearch ↗
- L2Find Median from Data StreamSearch ↗
11Intervals
12Greedy
13Backtracking
14Graphs
- L1Number of IslandsSearch ↗
- L2Max Area of IslandSearch ↗
- L2Clone GraphSearch ↗
- L1Rotting OrangesSearch ↗
- L2Shortest Path in Binary MatrixSearch ↗
- L3Pacific Atlantic Water FlowSearch ↗
- L1Course ScheduleSearch ↗
- L2Course Schedule IISearch ↗
- L3Number of Connected Components in an Undirected GraphSearch ↗
- L3Redundant ConnectionSearch ↗
- L2Accounts MergeSearch ↗
- L3Making A Large IslandSearch ↗
- L2Word LadderSearch ↗
15Advanced graphs
161-D dynamic programming & Kadane
- L1Climbing StairsSearch ↗
- L1House RobberSearch ↗
- L1Maximum SubarraySearch ↗
- L3House Robber IISearch ↗
- L2Longest Palindromic SubstringSearch ↗
- L3Palindromic SubstringsSearch ↗
- L2Decode WaysSearch ↗
- L1Coin ChangeSearch ↗
- L3Maximum Product SubarraySearch ↗
- L1Word BreakSearch ↗
- L2Longest Increasing SubsequenceSearch ↗
- L3Partition Equal Subset SumSearch ↗
172-D dynamic programming
18Bit manipulation
19Matrix & math
20Design
21ML coding
- L1Softmax & cross-entropy from scratchSearch ↗
- L2Cosine similarity top-k searchSearch ↗
- L3K-means from scratchSearch ↗
- L1Self-attention in NumPySearch ↗
- L1Top-k & top-p samplingSearch ↗
- L2Multi-head causal attentionSearch ↗
- L2KV cache for incremental decodingSearch ↗
- L3Beam search decodingSearch ↗
- L2BPE tokenizer from scratchSearch ↗
- L3Autograd from scratch (micrograd)Search ↗