Skip to main content
CF

AlgoExpert | Become an Algorithms Expert

116h 40m 8s
English
Paid
Updated February 2024

Become an Expert in Algorithms. 65 videos explaining popular interview questions with solutions in JavaScript, Python, C ++, Java, and Go. Practice with popular questions. Topics range from string manipulation and graph traversal to dynamic programming and recursion.

In-depth complexity analysis using performance optimization methods and techniques.

What is AlgoExpert?

65 hand-selected questions

Interview Preparation is a number game that many candidates lose. We have selected 65 of the best interview questions to truly prepare you.

50+ hours of video explanations

Algorithms are hard to learn on paper. Each of our questions is accompanied by a two-part video explanation for maximum learning. This is more than 50 hours of content, all in your hands.

Solutions in 5 languages

Not everyone speaks the same programming language. We give you solutions for every question in 5 different languages: JavaScript, Python, C ++, Java and Go. 

Difficulty analysis

Understanding how much memory the algorithm uses and how fast it works is extremely important. All of our explanations include a rigorous analysis of complexity.

Experience Tips

Algorithm interviews go beyond just algorithms and data structures. Our video series of interview tips give you important tips and tricks to help you stand out.

65 questions covering 14 categories.

If you want to go through a technical interview, knowledge of all common data structures and popular problem-solving methods is paramount. 65 questions covering 14 categories and 5 difficulty levels will help you with this.

  • Binary search trees
  • Binary trees
  • Linked Lists
  • Searching
  • Strings
  • Arrays
  • Stacks
  • Dynamic programming
  • Famous algorithms
  • Recursion
  • Sorting
  • Graphs
  • Heaps
  • Tries

Our videos set us apart

The truth is that the questions and algorithms in the interview are complex. It’s even harder to try to understand the inner workings of a complex algorithm from a book or from a poorly thought-out video shot on your grandmother’s camera. Our clear 1080p videos are crystal clear and strategically split into two parts to give you the most complete explanation of the issues. These are over 50 hours of content specifically designed to simplify interview questions and algorithms.

We speak 5 languages.

There is nothing more disappointing than opening a book to prepare for an interview, just finding a bunch of solutions in a programming language that you don’t know. That’s why all our questions come with complete written solutions in 5 popular languages.

  • JavaScript for all of you web developers
  • Python, for all of you, Data Scientists 
  • C ++, for all of you old schoolchildren
  • Java, for all of you masochists
  • Go, for all of you Kool Kidz

Additional

April 20: Fixed solutions, please re:download it.

About the Author: AlgoExpert

AlgoExpert thumbnail

AlgoExpert is a US technical-interview-preparation platform founded by Clément Mihailescu (a former Google engineer) — one of the most-used resources for the algorithm / data-structure portion of senior engineering interviews. The platform's distinctive contribution is the curated set of 160 hand-picked interview questions across difficulty tiers, each with video walkthroughs in multiple languages.

The platform has expanded beyond the original AlgoExpert track into SystemsExpert (system design), FrontendExpert (the browser / front-end interview rounds), MLExpert (machine learning interviews), ProgrammingExpert (the broader CS / coding skill foundation), and InfraExpert (infrastructure / DevOps interviews). The teaching style is rigorous and pattern-focused.

The CourseFlix listing under this source carries 8 AlgoExpert courses spanning that range. Material is paid; AlgoExpert runs on per-course or membership pricing on the original platform. Courses are aimed at engineers preparing for technical interviews at large tech companies.

Watch Online 200 lessons

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 200 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: Two Number Sum
All Course Lessons (200)
#Lesson TitleDurationAccess
1
Two Number Sum Demo
28:25
2
Validate Subsequence
18:54
3
Sorted Squared Array
21:14
4
Tournament Winner
21:51
5
Non-Constructible Change
20:13
6
Transpose Matrix
10:52
7
Find Closest Value In BST
24:40
8
Branch Sums
23:55
9
Node Depths
29:45
10
Evaluate Expression Tree
09:56
11
Depth-first Search
15:07
12
Minimum Waiting Time
18:25
13
Class Photos
19:00
14
Tandem Bicycle
28:15
15
Optimal Freelancing
14:02
16
Remove Duplicates From Linked List
22:41
17
Middle Node
11:56
18
Nth Fibonacci
31:06
19
Product Sum
19:03
20
Binary Search
27:34
21
Find Three Largest Numbers
15:29
22
Bubble Sort
19:02
23
Insertion Sort
11:59
24
Selection Sort
14:48
25
Palindrome Check
29:15
26
Caesar Cipher Encryptor
21:41
27
Run-Length Encoding
27:04
28
Common Characters
26:57
29
Generate Document
28:34
30
First Non-Repeating Character
18:47
31
Semordnilap
10:22
32
Three Number Sum
27:23
33
Smallest Difference
23:13
34
Move Element To End
23:43
35
Monotonic Array
33:16
36
Spiral Traverse
33:40
37
Longest Peak
35:51
38
Array Of Products
33:28
39
First Duplicate Value
30:16
40
Merge Overlapping Intervals
25:40
41
Best Seat
15:41
42
Zero Sum Subarray
11:55
43
Missing Numbers
30:49
44
Majority Element
25:35
45
Sweet And Savory
15:05
46
BST Construction
51:39
47
Validate BSTI
23:04
48
BST Traversal
19:27
49
Min Height BST
40:13
50
Find Kth Largest Value In BST
29:04
51
Reconstruct BST
56:58
52
Invert Binary Tree
29:23
53
Binary Tree Diameter
23:21
54
Find Successor
30:16
55
Height Balanced Binary Tree
26:12
56
Merge Binary Trees
24:28
57
Symmetrical Tree
21:35
58
Split Binary Tree
14:22
59
Max Subset Sum No Adjacent
21:47
60
Number Of Ways To Make Change
18:56
61
Min Number Of Coins For Change
23:55
62
Levenshtein Distance
41:58
63
Number Of Ways To Traverse Graph
39:20
64
Kadane's Algorithm
22:36
65
Stable internships
27:30
66
Union Find
35:02
67
Single Cycle Check
24:06
68
Breadth-first Search
19:35
69
River Sizes
43:47
70
Youngest Common Ancestor
21:35
71
Remove Islands
49:05
72
Cycle In Graph
47:20
73
Minimum Passes Of Matrix
33:34
74
Two-Colorable
16:11
75
Task Assignment
25:48
76
Valid Starting City
42:50
77
Min Heap Construction
57:31
78
Linked List Construction
59:41
79
Remove Kth Node From End
21:26
80
Sum of Linked Lists
31:57
81
Merging Linked Lists
22:14
82
Permutations
55:43
83
Powerset
26:24
84
Phone Number Mnemonics
37:06
85
Staircase Traversal
47:45
86
Blackjack Probability
21:21
87
Reveal Minesweeper
19:02
88
Search In Sorted Matrix
20:27
89
Three Number Sort
39:53
90
Min Max Stack Construction
25:43
91
Balanced Brackets
19:42
92
Sunset Views
33:46
93
Best Digits
16:23
94
Sort Stack
29:52
95
Next Greater Element
45:43
96
Reverse Polish Notation
14:53
97
Colliding Asteroids
16:46
98
Longest Palindromic Substring
26:58
99
Group Anagrams
35:09
100
Valid IP Addresses
29:32
101
Reverse Words In String
48:03
102
Minimum Characters For Words
27:30
103
One Edit
18:42
104
Suffix Trie Construction
34:31
105
Four Number Sum
46:17
106
Subarray Sort
28:28
107
Largest Range
26:32
108
Min Rewards
59:25
109
Zigzag Traverse
33:11
110
Longest Subarray With Sum
23:07
111
Knight Connection
24:04
112
Count Squares
25:47
113
Same BSTs
54:11
114
Validate Three Nodes
45:49
115
Repair BST
27:32
116
Sum BSTs
31:24
117
Max Path Sum In Binary Tree
46:24
118
Find Nodes Distance K
55:40
119
Max Sum Increasing Subsequence
32:52
120
Longest Common Subsequence
54:38
121
Min Number Of Jumps
34:13
122
Water Area
35:47
123
Knapsack Problem
43:01
124
Disk Stacking
38:36
125
Numbers In Pil
44:45
126
Maximum Sum Submatrix
45:38
127
Maximize Expression|
35:41
128
Dice Throws
42:52
129
Juice Bottling
26:41
130
Dijkstra's Algorithm
01:01:56
131
Topological Sort
01:08:04
132
Kruskal's Algorithm
20:42
133
Prim's Algorithm
37:41
134
Boggle Board
01:06:24
135
Largest Island
38:40
136
Continuous Median
33:50
137
Sort K-Sorted Array
29:12
138
Laptop Rentals
48:27
139
Find Loop
24:22
140
Reverse Linked List
28:47
141
Merge Linked Lists
44:38
142
Shift Linked List
32:17
143
Lowest Common Manager
29:51
144
Interweaving Strings
44:09
145
Solve Sudoku
37:27
146
Generate Div Tags
30:57
147
Ambiguous Measurements
45:16
148
Shifted Binary Search
28:43
149
Search For Range
29:45
150
Quickselect
35:49
151
Index Equals Value
27:33
152
Quick Sort
46:20
153
Heap Sort
29:28
154
Radix Sort
40:51
155
Shorten Path
46:20
156
Largest Rectangle Under Skyline
48:30
157
Longest Substring Without Duplication
27:17
158
Underscorify Substring
59:58
159
Pattern Matcher
44:42
160
Multi String Search
01:08:42
161
Longest Most Frequent Prefix
19:51
162
Shortest Unique Prefixes
20:21
163
Apartment Hunting
01:02:09
164
Calendar Matching
52:35
165
Waterfall Streams
33:56
166
Minimum Area Rectangle
53:18
167
Line Through Points
41:35
168
Right Smaller Than
56:08
169
Iterative In-order Traversal
29:15
170
Flatten Binary Tree
41:57
171
Right Sibling Tree
41:45
172
All Kinds Of Node Depths
01:06:25
173
Compare Leaf Traversal
52:34
174
Max Profit With K Transactions
48:37
175
Palindrome Partitioning Min Cuts
01:00:24
176
Longest Increasing Subsequence
01:15:29
177
Longest String Chain
44:55
178
Square of Zeroes
01:19:51
179
Knuth-Morris-Pratt Algorithm
59:08
180
A* Algorithm
01:00:52
181
Rectangle Mania
01:13:27
182
Detect Arbitrage
51:13
183
Two-Edge-Connected Graph
46:50
184
Airport Connections
01:06:28
185
Merge Sorted Arrays
01:05:40
186
LRU Cache
54:47
187
Rearrange Linked List
48:03
188
Linked List Palindrome
33:02
189
Zip Linked List
33:52
190
Node Swap
29:30
191
Number Of Binary Tree Topologies
46:10
192
Non-Attacking Queens
57:36
193
Median Of Two Sorted Arrays
32:18
194
Optimal Assembly Line
28:35
195
Merge Sort
01:17:07
196
Count Inversions
38:50
197
Largest Park
30:05
198
Smallest Substring Containing
50:31
199
Longest Balanced Substring
45:28
200
Strings Made Up Of Strings
35:11
Unlock unlimited learning

Get instant access to all 199 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What prior knowledge is required to enroll in this course?
This course requires a fundamental understanding of programming concepts and proficiency in at least one programming language. The solutions are provided in JavaScript, Python, C++, Java, and Go, so familiarity with any of these languages would be beneficial. Knowledge of basic data structures and algorithms will also help in understanding the more advanced topics covered, such as dynamic programming and graph traversal.
What will I be able to build or understand after completing the course?
Upon completing the course, you will be able to solve complex algorithmic problems that are commonly encountered in technical interviews. You will gain skills in string manipulation, graph traversal, dynamic programming, and recursion. Specific exercises include implementing sorting algorithms, such as Bubble Sort and Insertion Sort, and solving problems like Two Number Sum and Validate Subsequence.
Who is the target audience for this course?
The course is designed for individuals preparing for technical interviews in software engineering roles. It is suitable for both students and professionals who want to deepen their understanding of algorithms and improve their problem-solving skills. It's also beneficial for anyone looking to strengthen their proficiency in JavaScript, Python, C++, Java, or Go.
How does this course compare to other algorithm courses in terms of depth?
This course offers 65 video explanations and 200 lessons, providing a comprehensive exploration of algorithms essential for technical interviews. It covers a wide range of topics, including dynamic programming, graph traversal, and recursion. Compared to other courses that may focus on a narrower set of topics, this course provides a broad spectrum of algorithmic problems and solutions.
What specific tools or platforms are used in the course?
The course does not focus on specific development tools or platforms but emphasizes solving algorithmic problems using programming languages such as JavaScript, Python, C++, Java, and Go. This approach ensures that the skills acquired are applicable across various development environments and platforms.
What topics are not covered in this course?
The course focuses on algorithms for technical interviews and does not cover system design or software architecture. It also does not delve into domain-specific algorithms such as those used in machine learning or data science. The emphasis is strictly on algorithmic problem-solving and coding exercises.
How much time should I expect to commit to completing the course?
The total runtime of the video content is approximately 101 hours and 24 minutes. Given the depth of material and exercises available, students should be prepared to spend additional time practicing and implementing the solutions. Depending on their background and familiarity with the content, the time commitment can vary significantly, but a structured study plan over several weeks is recommended.