70+ JavaScript Challenges: Data Structures & Algorithms

70+ JavaScript Challenges: Data Structures & Algorithms

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 114 lectures (12h 27m) | 5.58 GB

Build better foundational skills as a developer by doing challenges and learning about data structures and algorithms

Most of my students know me for my practical, project-based courses and tutorials. I wanted to create something to give you more fundamental skills for problem solving. That’s where the idea for this challenges course came from. I want to take my down-to-earth explanations to help you get a better understanding of the code that you write and help you write more efficient code.

This course is for all levels as long as you have a basic understanding of things like loops, functions, arrays, etc. We are writing JavaScript in this course, but about 95% of it can translate to any other language. So even if you are a Python, PHP or C# developer, you can still follow along.

Basic Challenges:

We start with a bunch of basic challenges that have to do with iteration and loops. Things like FizzBuzz and string reversals. These are very popular questions for entry-level interviews. We also move on to solving problems with high order array methods like filter and map.


Recursion is one of the toughest things to learn in programming. We have an entire section dedicated to it with challenges that we solve using recursion.

Time & Space Complexity:

We talk about how to measure an algorithm or function’s efficiency by using time and space complexity to see how the runtime and memory scale when inscreasing the input.

Data Structures: Stacks, Queues, Trees, Linked Lists, Graphs, HashMaps

We go over all of the common data structures and create our own implementation of them using JavaScript classes, but like I said, you could use any language. We also learn how to traverse them and complete challenges using them.

Sorting Algorithms:

We get into different sorting algorithms like bubble sort, insertion, selection, merge and quick sort. These are popular topics for interviews.

What you’ll learn

  • Explore 70+ coding challenges from beginner, intermediate and advanced levels
  • Ace coding interviews by learning how to solve problems with iteration, recursion, array methods & more
  • Master data structures like stacks, queues, linked lists, trees, maps and hash maps
  • Learn about sorting algorithms like bubble sort, insertion, merge and quick sort
  • Full sandbox with explanations and Jest tests for every challenge
  • You do NOT have to take on the challenges alone. Follow along and learn from the explanations
Table of Contents

1 Welcome To The Course
2 Course Structure
3 DSA – The What & Why
4 Tools & Basic Setup
5 Sandbox Environment Setup

Basic Challenges – Part 1
6 Hello World (Starter Challenge)
7 Get Sum (Starter Challenege)
8 Calculator
9 Count Occurences
10 Find Max Number
11 Title Case
12 Reverse String
13 Palindrome
14 Count Vowels
15 Remove Duplicates

Basic Challenges – Part 2
16 FizzBuzz Array
17 Array Intersection
18 Display Likes
19 Find Missing Number
20 Find Missing Letter
21 Are All Chars Unique
22 First Non-Repeating Character
23 Dice Game Simulation
24 Format Phone Number
25 Validate Email

High Order Array Methods
26 Simple Examples
27 Sum Of Even Squares
28 Calculate Total Sales
29 Highest Scoring Word
30 Valid Anagrams
31 Hashtag Generator
32 Valid IPv4
33 Analyze Car Mileage
34 Password Validator
35 Find Missing Letter Refactor

36 Recursion Intro (Countdown)
37 Recursive Unwinding
38 Reverse String Using Recursion
39 Fibonacci Sequence
40 Factorial
41 Power
42 Array Sum
43 Number Range
44 Flatten Array
45 Permutations

Time & Space Complexity
46 What Is Time Complexity
47 Big O Notation
48 Constant Time Complexity – O(1)
49 Linear Time Complexity – O(n)
50 Quadratic Time Complexity – O(n^2)
51 Logarithmic Time Complexity – O(log n)
52 Space Complexity
53 Max Subarray – Quadratic
54 Sliding Window Technique
55 Max Subarray – Linear

Hash Tables, Maps & Sets
56 Hash Table Intro
57 Maps
58 Word Frequency Counter
59 Phone Number Directory
60 Anagram Grouping
61 Sets
62 Symmetric Difference
63 Two Sum
64 Longest Consecutive
65 Custom Hash Table – Part 1
66 Custom Hash Table – Part 2
67 Word Instance Counter Using Custom Hash Table
68 Add getValues Method
69 Anagram Grouping With Custom Hash Table

Stacks, Queues & Linked Lists
70 What Is A Stack
71 Stack Implementation
72 Reverse String Using A Stack
73 Balanced Parenthesis
74 What Is A Queue
75 Queue Implementation
76 Reverse String With A Queue
77 Palindrome With A Queue & Stack
78 What Is A LInked LIst
79 Linked List Implementation
80 Reverse String With A Linked List
81 Fast & Slow Pointers
82 Find Middle
83 What Is A Doubly Linked List
84 Doubly Linked List Implementation – Part 1
85 Doubly Linked List Implementation – Part 2
86 Find Pair Sum

Binary Trees, BST & Graphs
87 What Is a Tree Binary Tree
88 Tree Node Class
89 Depth-First Traversal
90 Depth-First Traversal Using Recursion
91 Breadth-First Traversal
92 Maximum Depth
93 What Is A Binary Search Tree
94 Binary Search Tree Implementation – Part 1
95 Binary Search Tree Implementation – Part 2
96 Validate BST
97 What Is A Graph
98 Adjacency Matrix & Adjacency List
99 Graph Implementation
100 Graph Traversal Visualization
101 Graph Depth-First Traversal
102 Graph Breadth-First Traversal

Sorting Algorithms
103 What Are Sorting Algorithms
104 Bubble Sort Algorithm
105 Bubble Sort Implementation
106 Insertion Sort Algorithm
107 Insertion Sort Implementation
108 Selection Sort Algorithm
109 Selection Sort Implementation
110 Merge Sort Algorithm
111 Merge Sort Implementation
112 Quick Sort Algorithm
113 Quick Sort Implementation

Wrap Up
114 Wrap Up