
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Explore 50 popular coding interview problems, sorted by difficulty, focusing on time-space efficiency; follow a three-step process: solve first, study the solution, and ask questions.
Learn to determine if any two elements in an array sum to k using three methods: brute force with nested loops, a sorted two-pointer approach, and a hash table lookup.
Explore the first repeating character problem using brute force versus hash table solutions, with a Python example and O(n) time, O(n) space analysis.
Learn how to remove duplicates from an integer array using brute force, sorting, and hash table approaches, including time and space trade-offs and practical Python code.
Explore the find the duplicate problem using the pigeonhole principle, brute force, sorting, hash tables, and Floyd's cycle detection on a linked-list interpretation.
Learn depth-first search on binary trees by implementing preorder, inorder, and postorder traversals using recursive functions, with base cases, and analyze O(n) time and O(h) space.
Learn to find the maximum subarray sum using Kadane's algorithm, a linear-time dynamic programming approach that tracks the best subarray ending at each index.
Master reversing a binary tree in place by swapping left and right pointers recursively, with a null base case, O(n) time, O(h) space, and notes on values vs links.
learn to find the length of the longest substring without repeating characters in a letter string. compare cubic brute-force to a linear-time solution using a 128-element last-seen index array.
Reverse a singly linked list in place without extra data structures, using value-based and link-based methods. Compare iterative O(n) time and O(1) space with recursive O(n) space.
WARNING: The instructor is not currently available to answer questions regarding this course
Preparing for coding interviews? Competitive programming? Then this course will help you for sure: 50 well-chosen problems to increase your problem-solving skills!
Many algorithms concepts covered: dynamic programming, divide and conquer, memoization, backtracking...
And many data structures used: arrays, hashmaps, sets, trees, stacks...
And also, time and space complexity analysis is provided for every problem!
Problems covered:
1- Find pair that sums up to k
2- First repeating character
3- Remove duplicates
4- Find the duplicate
5- Tree depth first search
6- Maximum subarray
7- Reverse a binary tree
8- Longest substring without repeating characters
9- Reverse a linked list
10- Peak finding
11- Palindrome linked list
12- Longest possible palindrome
13- Get substring index
14- Tree breadth first search
15- Sort a linked list
16- Valid binary search tree
17- Minimum cost path in matrix
18- Balanced binary tree
19- Paths in matrix
20- Tree breadth first search II
21- Product of array except self
22- Jump to last index
23- Graph depth first search
24- Graph breadth first search
25- String subsequences
26- Valid brackets
27- Flatten a binary tree
28- Lowest common ancestor
29- Minimum in rotated sorted array
30- Add two linked lists
31- Ways to climb stairs
32- Subsets that sum up to k
33- Ways to decode
34- Remove node from binary search tree
35- Array permutations
36- Longest common subsequence
37- Longest consecutive sequence
38- Edit distance
39- Count sorted vowel strings
40- Smallest number after removing k digits
41- Merge intervals
42- Insert interval
43- Binary tree max sum
44- 0-1 Knapsack
45- Shortest palindrome
46- Coin change
47- Word search
48- N-queens
49- Word ladder
50- Longest increasing subsequence