Menu

Course · Interview foundations

DSA

DSA rounds in Data Engineering interviews are usually easy to medium problems on arrays, hashing, strings, two pointers and sliding windows, sometimes graphs or DP.

Lessons
16
Interview questions
249
Projects & case studies
0
Reading time
~5 h

Your progress

Saved in this browser only

Course structure

Practise

Practice

249 problems in 17 topics, from basic to advanced. 0 of 249 done.

Arrays0/20

Pattern lesson: Arrays and Hashing: Sets, Hash Maps, Prefix Sums and Intervals

Array Basics1

  1. Majority ElementEasyLeetCode (opens in a new tab)

Prefix Sum6

  1. Find Pivot IndexEasyLeetCode (opens in a new tab)
  2. Product of Array Except SelfMediumLeetCode (opens in a new tab)
  3. Subarray Sum Equals KMediumLeetCode (opens in a new tab)
  4. Subarray Sums Divisible by KMediumLeetCode (opens in a new tab)
  5. Contiguous ArrayMediumLeetCode (opens in a new tab)
  6. Shortest Subarray with Sum at Least KHardLeetCode (opens in a new tab)

Kadane's Algorithm5

  1. Maximum SubarrayMediumLeetCode (opens in a new tab)
  2. Maximum Product SubarrayMediumLeetCode (opens in a new tab)
  3. Maximum Subarray Sum with One DeletionMediumLeetCode (opens in a new tab)
  4. Maximum Absolute Sum of Any SubarrayMediumLeetCode (opens in a new tab)
  5. Maximum Sum Circular SubarrayMediumLeetCode (opens in a new tab)

Matrix3

  1. Rotate ImageMediumLeetCode (opens in a new tab)
  2. Spiral MatrixMediumLeetCode (opens in a new tab)
  3. Set Matrix ZeroesMediumLeetCode (opens in a new tab)

Cyclic Sort5

  1. Missing NumberEasyLeetCode (opens in a new tab)
  2. Find All Numbers Disappeared in an ArrayEasyLeetCode (opens in a new tab)
  3. Set MismatchEasyLeetCode (opens in a new tab)
  4. Find All Duplicates in an ArrayMediumLeetCode (opens in a new tab)
  5. First Missing PositiveHardLeetCode (opens in a new tab)
Hashing0/9

Pattern lesson: Arrays and Hashing: Sets, Hash Maps, Prefix Sums and Intervals

  1. Contains DuplicateEasyLeetCode (opens in a new tab)
  2. Valid AnagramEasyLeetCode (opens in a new tab)
  3. Two SumEasyLeetCode (opens in a new tab)
  4. First Unique Character in a StringEasyLeetCode (opens in a new tab)
  5. Longest PalindromeEasyLeetCode (opens in a new tab)
  6. Ransom NoteEasyLeetCode (opens in a new tab)
  7. Valid SudokuMediumLeetCode (opens in a new tab)
  8. Group AnagramsMediumLeetCode (opens in a new tab)
  9. Longest Consecutive SequenceMediumLeetCode (opens in a new tab)
Strings0/4

Pattern lesson: Strings for Coding Interviews: Immutability, Scanning and Parsing

  1. Longest Common PrefixEasyLeetCode (opens in a new tab)
  2. Reverse StringEasyLeetCode (opens in a new tab)
  3. Encode and Decode StringsMediumGeeksforGeeks (opens in a new tab)
  4. String to Integer (atoi)MediumLeetCode (opens in a new tab)
Bit Manipulation0/7

Pattern lesson: Arrays and Hashing: Sets, Hash Maps, Prefix Sums and Intervals

  1. Number of 1 BitsEasyLeetCode (opens in a new tab)
  2. Reverse BitsEasyLeetCode (opens in a new tab)
  3. Single NumberEasyLeetCode (opens in a new tab)
  4. Counting BitsEasyLeetCode (opens in a new tab)
  5. Complement of Base 10 IntegerEasyLeetCode (opens in a new tab)
  6. Sum of Two IntegersMediumLeetCode (opens in a new tab)
  7. Single Number IIIMediumLeetCode (opens in a new tab)
Two Pointers0/17

Pattern lesson: Two Pointers: Converging, Read-Write and Partitioning Templates

  1. Valid Palindrome IIEasyLeetCode (opens in a new tab)
  2. Valid PalindromeEasyLeetCode (opens in a new tab)
  3. Move ZeroesEasyLeetCode (opens in a new tab)
  4. Remove Duplicates from Sorted ArrayEasyLeetCode (opens in a new tab)
  5. Squares of a Sorted ArrayEasyLeetCode (opens in a new tab)
  6. Segregate 0s and 1sEasyGeeksforGeeks (opens in a new tab)
  7. Backspace String CompareEasyLeetCode (opens in a new tab)
  8. Two Sum IIMediumLeetCode (opens in a new tab)
  9. 3SumMediumLeetCode (opens in a new tab)
  10. Container With Most WaterMediumLeetCode (opens in a new tab)
  11. Sort ColorsMediumLeetCode (opens in a new tab)
  12. 3Sum ClosestMediumLeetCode (opens in a new tab)
  13. Triplets with Smaller SumMediumGeeksforGeeks (opens in a new tab)
  14. Subarray Product Less Than KMediumLeetCode (opens in a new tab)
  15. 4SumMediumLeetCode (opens in a new tab)
  16. Shortest Unsorted Continuous SubarrayMediumLeetCode (opens in a new tab)
  17. Trapping Rain WaterHardLeetCode (opens in a new tab)
Queue0/4

Pattern lesson: Queues: FIFO Buffers, Ring Buffers and Queue Design Problems

  1. Implement Stack using QueuesEasyLeetCode (opens in a new tab)
  2. Implement Queue using StacksEasyLeetCode (opens in a new tab)
  3. Number of Recent CallsEasyLeetCode (opens in a new tab)
  4. Design Circular QueueMediumLeetCode (opens in a new tab)
Sliding Window0/14

Pattern lesson: Sliding Window: Fixed, Variable and Monotonic-Deque Templates

  1. Best Time to Buy and Sell StockEasyLeetCode (opens in a new tab)
  2. Maximum Average Subarray IEasyLeetCode (opens in a new tab)
  3. Max Sum Subarray of Size KEasyGeeksforGeeks (opens in a new tab)
  4. Longest Substring Without Repeating CharactersMediumLeetCode (opens in a new tab)
  5. Longest Repeating Character ReplacementMediumLeetCode (opens in a new tab)
  6. Permutation in StringMediumLeetCode (opens in a new tab)
  7. Minimum Size Subarray SumMediumLeetCode (opens in a new tab)
  8. Longest K Unique Characters SubstringMediumGeeksforGeeks (opens in a new tab)
  9. Fruit Into BasketsMediumLeetCode (opens in a new tab)
  10. Max Consecutive Ones IIIMediumLeetCode (opens in a new tab)
  11. Find All Anagrams in a StringMediumLeetCode (opens in a new tab)
  12. Minimum Window SubstringHardLeetCode (opens in a new tab)
  13. Sliding Window MaximumHardLeetCode (opens in a new tab)
  14. Substring with Concatenation of All WordsHardLeetCode (opens in a new tab)
Stack0/14

Pattern lesson: Stacks: Matching, Evaluation and Monotonic Stack Templates

Stack Basics6

  1. Valid ParenthesesEasyLeetCode (opens in a new tab)
  2. Remove All Adjacent Duplicates In StringEasyLeetCode (opens in a new tab)
  3. Min StackMediumLeetCode (opens in a new tab)
  4. Evaluate Reverse Polish NotationMediumLeetCode (opens in a new tab)
  5. Remove All Adjacent Duplicates in String IIMediumLeetCode (opens in a new tab)
  6. Simplify PathMediumLeetCode (opens in a new tab)

Monotonic Stack8

  1. Next Greater Element IEasyLeetCode (opens in a new tab)
  2. Daily TemperaturesMediumLeetCode (opens in a new tab)
  3. Car FleetMediumLeetCode (opens in a new tab)
  4. Next Greater Element IIMediumLeetCode (opens in a new tab)
  5. Remove Nodes From Linked ListMediumLeetCode (opens in a new tab)
  6. Remove K DigitsMediumLeetCode (opens in a new tab)
  7. 132 PatternMediumLeetCode (opens in a new tab)
  8. Largest Rectangle in HistogramHardLeetCode (opens in a new tab)
Binary Search0/20

Pattern lesson: Binary Search: Exact Match, Boundaries and Searching the Answer

Classic Binary Search6

  1. Binary SearchEasyLeetCode (opens in a new tab)
  2. Ceil in Sorted ArrayEasyGeeksforGeeks (opens in a new tab)
  3. Time Based Key-Value StoreMediumLeetCode (opens in a new tab)
  4. Find First and Last Position of a ValueMediumLeetCode (opens in a new tab)
  5. Number of OccurrenceMediumGeeksforGeeks (opens in a new tab)
  6. Median of Two Sorted ArraysHardLeetCode (opens in a new tab)

Rotated Arrays and Peaks5

  1. Find Rotation CountEasyGeeksforGeeks (opens in a new tab)
  2. Find Minimum in Rotated Sorted ArrayMediumLeetCode (opens in a new tab)
  3. Search in Rotated Sorted ArrayMediumLeetCode (opens in a new tab)
  4. Peak Index in a Mountain ArrayMediumLeetCode (opens in a new tab)
  5. Find Peak ElementMediumLeetCode (opens in a new tab)

Binary Search on the Answer6

  1. Koko Eating BananasMediumLeetCode (opens in a new tab)
  2. Minimum Number of Days to Make m BouquetsMediumLeetCode (opens in a new tab)
  3. Aggressive CowsMediumGeeksforGeeks (opens in a new tab)
  4. Maximum Candies Allocated to K ChildrenMediumLeetCode (opens in a new tab)
  5. Capacity To Ship Packages Within D DaysMediumLeetCode (opens in a new tab)
  6. Split Array Largest SumHardLeetCode (opens in a new tab)

Matrix Search3

  1. Search a 2D MatrixMediumLeetCode (opens in a new tab)
  2. Search a 2D Matrix IIMediumLeetCode (opens in a new tab)
  3. Kth Smallest Element in a Sorted MatrixMediumLeetCode (opens in a new tab)
Linked List0/18

Pattern lesson: Linked Lists: Pointer Rewiring, Fast and Slow Pointers, LRU Cache

Linked List Basics5

  1. Merge Two Sorted ListsEasyLeetCode (opens in a new tab)
  2. Remove Nth Node From End of ListMediumLeetCode (opens in a new tab)
  3. Copy List with Random PointerMediumLeetCode (opens in a new tab)
  4. Add Two NumbersMediumLeetCode (opens in a new tab)
  5. LRU CacheMediumLeetCode (opens in a new tab)

Fast and Slow Pointers8

  1. Linked List CycleEasyLeetCode (opens in a new tab)
  2. Happy NumberEasyLeetCode (opens in a new tab)
  3. Middle of the Linked ListEasyLeetCode (opens in a new tab)
  4. Palindrome Linked ListEasyLeetCode (opens in a new tab)
  5. Reorder ListMediumLeetCode (opens in a new tab)
  6. Find the Duplicate NumberMediumLeetCode (opens in a new tab)
  7. Linked List Cycle IIMediumLeetCode (opens in a new tab)
  8. Circular Array LoopMediumLeetCode (opens in a new tab)

In-place Reversal5

  1. Reverse Linked ListEasyLeetCode (opens in a new tab)
  2. Reverse Linked List IIMediumLeetCode (opens in a new tab)
  3. Swap Nodes in PairsMediumLeetCode (opens in a new tab)
  4. Rotate ListMediumLeetCode (opens in a new tab)
  5. Reverse Nodes in k-GroupHardLeetCode (opens in a new tab)
Trees0/18

Pattern lesson: Binary Trees and Tries: DFS, BFS and Prefix Search Templates

Tree DFS11

  1. Invert Binary TreeEasyLeetCode (opens in a new tab)
  2. Maximum Depth of Binary TreeEasyLeetCode (opens in a new tab)
  3. Diameter of Binary TreeEasyLeetCode (opens in a new tab)
  4. Balanced Binary TreeEasyLeetCode (opens in a new tab)
  5. Same TreeEasyLeetCode (opens in a new tab)
  6. Subtree of Another TreeEasyLeetCode (opens in a new tab)
  7. Count Good Nodes in Binary TreeMediumLeetCode (opens in a new tab)
  8. Construct Binary Tree from Preorder and Inorder TraversalMediumLeetCode (opens in a new tab)
  9. Lowest Common Ancestor of a Binary TreeMediumLeetCode (opens in a new tab)
  10. Binary Tree Maximum Path SumHardLeetCode (opens in a new tab)
  11. Serialize and Deserialize Binary TreeHardLeetCode (opens in a new tab)

Tree BFS2

  1. Binary Tree Level Order TraversalMediumLeetCode (opens in a new tab)
  2. Binary Tree Right Side ViewMediumLeetCode (opens in a new tab)

Trie5

  1. Implement Trie (Prefix Tree)MediumLeetCode (opens in a new tab)
  2. Design Add and Search WordsMediumLeetCode (opens in a new tab)
  3. Extra Characters in a StringMediumLeetCode (opens in a new tab)
  4. Search Suggestions SystemMediumLeetCode (opens in a new tab)
  5. Word Search IIHardLeetCode (opens in a new tab)
BST0/6

Pattern lesson: Binary Search Trees: Ordering, Validation, Insert and Delete

  1. Convert Sorted Array to BSTEasyLeetCode (opens in a new tab)
  2. Validate Binary Search TreeMediumLeetCode (opens in a new tab)
  3. Kth Smallest Element in a BSTMediumLeetCode (opens in a new tab)
  4. Lowest Common Ancestor of a BSTMediumLeetCode (opens in a new tab)
  5. Insert into a BSTMediumLeetCode (opens in a new tab)
  6. Delete Node in a BSTMediumLeetCode (opens in a new tab)
Heap0/18

Pattern lesson: Heaps and Priority Queues: Top-K, Scheduling and Running Medians

Top K Elements11

  1. Kth Largest Element in a StreamEasyLeetCode (opens in a new tab)
  2. Last Stone WeightEasyLeetCode (opens in a new tab)
  3. Top K Frequent ElementsMediumLeetCode (opens in a new tab)
  4. K Closest Points to OriginMediumLeetCode (opens in a new tab)
  5. Kth Largest Element in an ArrayMediumLeetCode (opens in a new tab)
  6. Task SchedulerMediumLeetCode (opens in a new tab)
  7. Min Cost to Connect RopesMediumGeeksforGeeks (opens in a new tab)
  8. Sort Characters By FrequencyMediumLeetCode (opens in a new tab)
  9. Find K Closest ElementsMediumLeetCode (opens in a new tab)
  10. Reorganize StringMediumLeetCode (opens in a new tab)
  11. Maximum Frequency StackHardLeetCode (opens in a new tab)

Two Heaps4

  1. Maximum Sum CombinationMediumGeeksforGeeks (opens in a new tab)
  2. Find Median from Data StreamHardLeetCode (opens in a new tab)
  3. Sliding Window MedianHardLeetCode (opens in a new tab)
  4. IPOHardLeetCode (opens in a new tab)

K-way Merge3

  1. Design TwitterMediumLeetCode (opens in a new tab)
  2. Merge k Sorted ListsHardLeetCode (opens in a new tab)
  3. Smallest Range Covering Elements from K ListsHardLeetCode (opens in a new tab)
Greedy0/17

Pattern lesson: Greedy Algorithms and Intervals: Safe Local Choices and Sweeps

Greedy Choices10

  1. Jump GameMediumLeetCode (opens in a new tab)
  2. Jump Game IIMediumLeetCode (opens in a new tab)
  3. Gas StationMediumLeetCode (opens in a new tab)
  4. Hand of StraightsMediumLeetCode (opens in a new tab)
  5. Merge Triplets to Form TargetMediumLeetCode (opens in a new tab)
  6. Partition LabelsMediumLeetCode (opens in a new tab)
  7. Valid Parenthesis StringMediumLeetCode (opens in a new tab)
  8. Maximum Length of Pair ChainMediumLeetCode (opens in a new tab)
  9. Minimum Add to Make Parentheses ValidMediumLeetCode (opens in a new tab)
  10. Remove Duplicate LettersMediumLeetCode (opens in a new tab)

Intervals7

  1. Meeting RoomsEasyGeeksforGeeks (opens in a new tab)
  2. Merge IntervalsMediumLeetCode (opens in a new tab)
  3. Insert IntervalMediumLeetCode (opens in a new tab)
  4. Non-overlapping IntervalsMediumLeetCode (opens in a new tab)
  5. Interval List IntersectionsMediumLeetCode (opens in a new tab)
  6. Meeting Rooms IIMediumGeeksforGeeks (opens in a new tab)
  7. My Calendar IMediumLeetCode (opens in a new tab)
Backtracking0/12

Pattern lesson: Backtracking: Subsets, Combinations, Permutations and Grid Search

Subsets and Permutations6

  1. Generate ParenthesesMediumLeetCode (opens in a new tab)
  2. SubsetsMediumLeetCode (opens in a new tab)
  3. PermutationsMediumLeetCode (opens in a new tab)
  4. Subsets IIMediumLeetCode (opens in a new tab)
  5. Letter Combinations of a Phone NumberMediumLeetCode (opens in a new tab)
  6. Letter Case PermutationMediumLeetCode (opens in a new tab)

Combinations and Search6

  1. Combination SumMediumLeetCode (opens in a new tab)
  2. Combination Sum IIMediumLeetCode (opens in a new tab)
  3. Word SearchMediumLeetCode (opens in a new tab)
  4. Palindrome PartitioningMediumLeetCode (opens in a new tab)
  5. N-QueensHardLeetCode (opens in a new tab)
  6. Sudoku SolverHardLeetCode (opens in a new tab)
Graph0/27

Pattern lesson: Graphs: BFS, DFS, Topological Sort, Union-Find and Shortest Paths

Graph Traversal5

  1. Find if Path Exists in GraphEasyLeetCode (opens in a new tab)
  2. Clone GraphMediumLeetCode (opens in a new tab)
  3. Number of ProvincesMediumLeetCode (opens in a new tab)
  4. Word LadderHardLeetCode (opens in a new tab)
  5. Reconstruct ItineraryHardLeetCode (opens in a new tab)

Islands (Matrix Traversal)8

  1. Flood FillEasyLeetCode (opens in a new tab)
  2. Island PerimeterEasyLeetCode (opens in a new tab)
  3. Number of IslandsMediumLeetCode (opens in a new tab)
  4. Max Area of IslandMediumLeetCode (opens in a new tab)
  5. Pacific Atlantic Water FlowMediumLeetCode (opens in a new tab)
  6. Surrounded RegionsMediumLeetCode (opens in a new tab)
  7. Rotting OrangesMediumLeetCode (opens in a new tab)
  8. Number of Closed IslandsMediumLeetCode (opens in a new tab)

Topological Sort5

  1. Course ScheduleMediumLeetCode (opens in a new tab)
  2. Course Schedule IIMediumLeetCode (opens in a new tab)
  3. Topological SortMediumGeeksforGeeks (opens in a new tab)
  4. Minimum Height TreesMediumLeetCode (opens in a new tab)
  5. Alien DictionaryHardGeeksforGeeks (opens in a new tab)

Union Find5

  1. Graph Valid TreeMediumGeeksforGeeks (opens in a new tab)
  2. Number of Connected Components in an Undirected Graph with Union-FindMediumGeeksforGeeks (opens in a new tab)
  3. Redundant ConnectionMediumLeetCode (opens in a new tab)
  4. Is Graph Bipartite?MediumLeetCode (opens in a new tab)
  5. Path With Minimum EffortMediumLeetCode (opens in a new tab)

Shortest Paths and MST4

  1. Network Delay TimeMediumLeetCode (opens in a new tab)
  2. Cheapest Flights Within K StopsMediumLeetCode (opens in a new tab)
  3. Min Cost to Connect All PointsMediumLeetCode (opens in a new tab)
  4. Swim in Rising WaterHardLeetCode (opens in a new tab)
Dynamic Programming0/24

Pattern lesson: Dynamic Programming: States, Transitions and the Classic DP Families

1D DP9

  1. Climbing StairsEasyLeetCode (opens in a new tab)
  2. Min Cost Climbing StairsEasyLeetCode (opens in a new tab)
  3. House RobberMediumLeetCode (opens in a new tab)
  4. House Robber IIMediumLeetCode (opens in a new tab)
  5. Decode WaysMediumLeetCode (opens in a new tab)
  6. Coin ChangeMediumLeetCode (opens in a new tab)
  7. Word BreakMediumLeetCode (opens in a new tab)
  8. Longest Increasing SubsequenceMediumLeetCode (opens in a new tab)
  9. Best Time to Buy and Sell Stock with CooldownMediumLeetCode (opens in a new tab)

Knapsack7

  1. Partition Equal Subset SumMediumLeetCode (opens in a new tab)
  2. Coin Change IIMediumLeetCode (opens in a new tab)
  3. Target SumMediumLeetCode (opens in a new tab)
  4. 0 - 1 Knapsack ProblemMediumGeeksforGeeks (opens in a new tab)
  5. Subset Sum ProblemMediumGeeksforGeeks (opens in a new tab)
  6. Count Subsets with SumMediumGeeksforGeeks (opens in a new tab)
  7. Partition Into 2 Subsets with Min Sum DiffHardGeeksforGeeks (opens in a new tab)

2D DP: Strings and Grids8

  1. Longest Palindromic SubstringMediumLeetCode (opens in a new tab)
  2. Palindromic SubstringsMediumLeetCode (opens in a new tab)
  3. Unique PathsMediumLeetCode (opens in a new tab)
  4. Longest Common SubsequenceMediumLeetCode (opens in a new tab)
  5. Interleaving StringMediumLeetCode (opens in a new tab)
  6. Edit DistanceMediumLeetCode (opens in a new tab)
  7. Burst BalloonsHardLeetCode (opens in a new tab)
  8. Regular Expression MatchingHardLeetCode (opens in a new tab)

Ticks are saved in this browser only and match the ticks on the interview pages.

Lessons

Work through the lessons in order. Completed lessons show a tick; lessons you have opened are outlined.

Start here

The complete overview of the course in one read.

  1. Data Structures and Algorithms for Data Engineers: How to PrepareBig-O, a repeatable method for coding rounds, the Python built-ins that solve most problems, and a study plan for the 157 practice problems in the planner.Beginner19 min

Beginner

Core concepts you will use every day.

  1. Arrays and Hashing: Sets, Hash Maps, Prefix Sums and IntervalsThe most common coding-interview pattern: seen sets, value-to-index maps, counting, prefix sums, Kadane, intervals, matrices and bit tricks, with tested Python.Beginner25 min
  2. Strings for Coding Interviews: Immutability, Scanning and ParsingHow Python strings work, the scanning and parsing templates behind string problems, and how they map to cleaning keys and parsing messy fields in pipelines.Beginner9 min
  3. Two Pointers: Converging, Read-Write and Partitioning TemplatesUse two indices to replace nested loops: converging pointers on sorted data, read-write compaction, three-way partitioning, and the sort-merge join behind them.Beginner12 min
  4. Queues: FIFO Buffers, Ring Buffers and Queue Design ProblemsHow queues work, deque versus list, building queues from stacks and a ring buffer, time-window counters, and the buffering ideas behind message queues and Kafka.Beginner11 min

Intermediate

Patterns used in production pipelines.

  1. Sliding Window: Fixed, Variable and Monotonic-Deque TemplatesSolve contiguous subarray and substring problems in one pass with fixed and variable windows and a monotonic deque, and see how they power streaming metrics.Intermediate13 min
  2. Stacks: Matching, Evaluation and Monotonic Stack TemplatesUse Python lists as stacks for bracket matching, expression evaluation, min-tracking and monotonic stacks, with tested code and the pipeline jobs they map to.Intermediate12 min
  3. Binary Search: Exact Match, Boundaries and Searching the AnswerOne reliable binary search template for exact matches, first and last positions, rotated arrays and searching on the answer, plus as-of lookups and partition pruning.Intermediate13 min
  4. Linked Lists: Pointer Rewiring, Fast and Slow Pointers, LRU CacheReverse, merge, split and reorder linked lists safely with dummy nodes and fast and slow pointers, then build an LRU cache and a k-way merge in Python.Intermediate20 min
  5. Binary Trees and Tries: DFS, BFS and Prefix Search TemplatesTraverse binary trees with recursive and iterative DFS and level-order BFS, return values up the tree, build and serialise trees, and use tries for prefix search.Intermediate21 min
  6. Binary Search Trees: Ordering, Validation, Insert and DeleteUse the BST ordering rule to search, validate, insert, delete and find the k-th smallest value, and see how the same idea underlies B-tree indexes and range scans.Intermediate13 min
  7. Heaps and Priority Queues: Top-K, Scheduling and Running MediansUse Python's heapq for top-K, k-th largest, k-way merges, task scheduling and running medians, with the bounded-memory streaming patterns Data Engineers rely on.Intermediate18 min
  8. Greedy Algorithms and Intervals: Safe Local Choices and SweepsWhen a locally best choice is provably safe: reach, gas station, grouping and partition problems, plus interval sweeps used for sessionisation and time ranges.Intermediate16 min

Advanced

Performance, internals and edge cases.

  1. Backtracking: Subsets, Combinations, Permutations and Grid SearchOne choose-explore-unchoose template for subsets, combinations, permutations, partitions, word search and N-Queens, with duplicate handling, pruning and itertools.Advanced17 min
  2. Graphs: BFS, DFS, Topological Sort, Union-Find and Shortest PathsModel problems as graphs and solve them with grid DFS and BFS, topological sort for DAG dependencies, union-find, Dijkstra, Bellman-Ford and minimum spanning trees.Advanced29 min
  3. Dynamic Programming: States, Transitions and the Classic DP FamiliesA repeatable method for dynamic programming: define the state and transition, pick memoisation or a table, then solve 1D, grid, string and knapsack problems.Advanced27 min

Resources

Related courses

Plan your learning

Search
Filter by type