Weekly Lectures

These are live lectures given with varying degrees of preparation to a group of Ian's alumni. For everyone's benefit, they are posted here, but be aware that there are certainly errors in these videos. If you spot any, please feel free to email Ian.

Live Lecture:Longest Increasing Path

In this video we will solve LeetCode 329. We define an algorithm that does a depth first search starting from each node, before adding a memoisation step to improve the performance of our otherwise slow solution.

Find the code here: Leetcode 329

Live Lecture: Word Ladder

In this video we will solve LeetCode 127. We start by building a graph, and finish by doing breadth first search to find the shortest path between the startWord and the endWord.

Find the code here: Leetcode 127

Live Lecture: Building an LRU Cache

In this lecture we solve Leetcode 146, and build an LRU Cache.

Live Lecture: Validate Binary Search Tree

In this video we will solve LeetCode 98. We start from foundational understanding of BSTs, and build a recursive algorithm that traverses the BST from root to leaf, checking for conditions that would make the tree invalid!

Live Lecture: Convert Sorted Array to BST

In this video we solve LeetCode problem 108. In this solution we reason our way through building a height balanced binary search tree from a sorted input array. We show how the naturally recursive structure of BSTs leads to a straightforward algorithm. We also review the array representation of BSTs.