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:

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

**Introduction**

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

**Recursion**

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

Resolve the captcha to access the links!