Introduction to Algorithms in Python – a free video course by RealToughCandy.com featuring Joy Brock

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)