Code Samples (as shown in the course)
https://github.com/joyb0218/intro_to_algorithms/blob/main/1_r
ecursive_algorithms
https://github.com/joyb0218/intro_to_algorithms/blob/main/2_d
ata_structures
https://github.com/joyb0218/intro_to_algorithms/blob/main/3_d
ivide_conquer
https://github.com/joyb0218/intro_to_algorithms/blob/main/4_g
reedy_algorithms
https://github.com/joyb0218/intro_to_algorithms/blob/main/5_d
ynamic_programming
TIMESTAMPS
0:00 Intro & course overview
7:22 Factorials refresher
10:19 CODING CHALLENGE: Factorial program using iteration, recursion
15:12 What is a permutation?
16:49 CODING CHALLENGE: Recursive permutation
20:28 Iterative permutation example
22:32 8/N queens problem: theory & explanation
24:12 Real world example of permutations
25:04 Lesson recap
26:26 What are data structures?
28:08 What is a one-dimensional array?
29:16 Search & sort
30:54 CODING CHALLENGE: Linear search
31:15 Binary search
32:21 CODING CHALLENGE: Iterative binary search
33:46 Coding a recursive binary search
35:02 Bubble sort
36:57 CODING CHALLENGE: Bubble sort
38:17 Insertion sort
39:39 CODING CHALLENGE: Insertion sort
40:51 Linked lists
44:16 CODING CHALLENGE: Linked list (traverse, search, add, delete, header, nodes, tail)
52:27 Hash tables
56:42 Lesson recap
57:57 Divide & conquer algorithm paradigm: uses, benefits and more
1:00:58 Merge sort
1:03:03 CODING CHALLENGE: An efficient merge sort
1:06:03 Getting judged mercilessly on LeetCode
1:07:02 Getting Python to do the work for us with sorted()
1:07:48 Matrix multiplication
1:10:21 CODING CHALLENGE: Matrix multiplication
1:11:35 Strassen algorithm
1:15:00 CODING CHALLENGE: Strassen algorithm
1:16:42 Lesson recap
1:17:36 What is a greedy algorithm?
1:19:35 Assign mice to holes conceptual overview
1:22:00 CODING CHALLENGE: Assign mice to holes
1:23:25 Fractional knapsack
1:23:51 Understanding the fractional knapsack problem with a (light-hearted) dystopian apocalypse example
1:26:09 Coding challenge prep
1:27:28 CODING CHALLENGE: Fractional knapsack
1:32:04 Egyptians fractions
1:34:18 CODING CHALLENGE: Egyptian fractions
1:37:21 Lesson recap
1:38:30 What is dynamic programming (also called DP)?
1:42:10 What is the principle of optimality?
1:42:35 The 3-step process to solving a problem with optimal substructure
1:44:10 Introduction to “ugly numbers”
1:47:34 CODING CHALLENGE: Ugly numbers
1:51:56 Traveling salesman problem (TSP)
1:56:04 CODING CHALLENGE: Traveling salesman problem
2:00:07 Palindromic matrix paths
2:03:26 CODING CHALLENGE: Palindromic matrix paths
2:08:52 Lesson recap
2:10:18 Course wrap up (and the importance of coding every day)