Section 1 : Introduction

Lecture 1 Coding interviews are tough - but beatable 00:17:10 Duration

Section 2 : Pointer and Arrays

Lecture 1 Materials
Lecture 2 Introduction to pointers 00:19:58 Duration
Lecture 3 Pointer problems and arrays 00:13:34 Duration
Lecture 4 Pointer arithmetic 00:11:42 Duration
Lecture 5 Practice makes perfect - pointer problems 00:07:36 Duration

Section 3 : Strings are just pointers at heart

Lecture 1 Working with strings 00:14:05 Duration
Lecture 2 Pointer as arguments to functions 00:09:38 Duration
Lecture 3 Practice makes perfect - string problems 00:19:22 Duration

Section 4 : Linked lists can be fun!

Lecture 1 Pointers to pointers - bend your mind
Lecture 2 Pointers to pointers - reassignment and modification 00:11:12 Duration
Lecture 3 Get started with linked lists 00:17:15 Duration
Lecture 4 Warming up to - they get tricky quickly 00:16:18 Duration
Lecture 5 Cruising along - linked lists are fun aren't they 00:18:58 Duration
Lecture 6 Autopilot - linked lists are easy after all 00:16:30 Duration
Lecture 7 Do not overlook the doubly linked list 00:10:02 Duration

Section 5 : Bit Manipulation

Lecture 1 Bit Manipulation - I 00:10:06 Duration
Lecture 2 Bit Manipulation - II 00:08:38 Duration
Lecture 3 Useful Bit Manipulation Techniques 00:13:12 Duration
Lecture 4 Get And Set The Nth Bit 00:13:28 Duration
Lecture 5 Print And Count Bits 00:18:52 Duration
Lecture 6 Reverse The Bits In An Integer 00:10:09 Duration

Section 6 : General programming problems - practice makes perfect

Lecture 1 Starting up - palindromes and points within a distance 00:18:15 Duration
Lecture 2 Play the Game Of Life and Break A Document Into Chunks 00:18:32 Duration
Lecture 3 Run Length Encoding And Adding Numbers Digit By Digit 00:19:46 Duration
Lecture 4 Sudoku Board Validation and Incrementing A Number In Another Number System 00:19:54 Duration

Section 7 : Big-O Notation, Sorting And Searching Algorithms

Lecture 1 Performance and Complexity 00:16:01 Duration
Lecture 2 Big O Notation
Lecture 3 Big O Notation More Examples 00:19:11 Duration
Lecture 4 Sorting Trade-Offs 00:10:51 Duration
Lecture 5 Selection Sort 00:15:23 Duration
Lecture 6 Bubble Sort 00:14:41 Duration
Lecture 7 Insertion Sort 00:14:31 Duration
Lecture 8 Shell Sort 00:14:11 Duration
Lecture 9 Merge Sort 00:19:22 Duration
Lecture 10 Quick Sort 00:15:28 Duration
Lecture 11 Binary Search - search quickly through a sorted list 00:11:09 Duration

Section 8 : Recursion and the recursive sense

Lecture 1 What is recursion - why is it so hard 00:16:58 Duration
Lecture 2 Binary search - implemented recursively 00:13:20 Duration
Lecture 3 Find all subsets of a set 00:14:54 Duration
Lecture 4 Check whether 2 binary trees are the same 00:14:52 Duration
Lecture 5 Implement paint fill to color a region on screen 00:11:01 Duration
Lecture 6 Build A car Given Tasks And Dependencies 00:14:18 Duration
Lecture 7 Generate Anagrams Of A Word 00:16:35 Duration
Lecture 8 Help A Rat Find It's Way Through a Maze 00:13:00 Duration
Lecture 9 Place 8 Queens On A Board Safely 00:17:49 Duration

Section 9 : Stacks And Queues

Lecture 1 Meet The Stack - Simple But Powerful 00:15:39 Duration
Lecture 2 Building A Stack Using Java 00:16:52 Duration
Lecture 3 Match Parenthesis To Check A Well Formed Expression 00:11:20 Duration
Lecture 4 Find The Minimum Element In A Stack In Constant Time 00:08:50 Duration
Lecture 5 Meet The Queue - A Familiar Sight In Everyday Life 00:14:10 Duration
Lecture 6 The Circular Queue - Tricky But Fast 00:19:43 Duration
Lecture 7 Build A Queue With Two Stacks 00:17:29 Duration

Section 10 : Binary Trees

Lecture 1 Meet The Binary Tree - A Hierarchical Data Structure 00:13:02 Duration
Lecture 2 Breadth First Traversal 00:18:42 Duration
Lecture 3 Depth First - Pre-OrderTraversal 00:14:33 Duration
Lecture 4 Depth First - In-Order and Post-Order Traversal 00:13:50 Duration

Section 11 : Binary Search Trees

Lecture 1 The Binary Search Tree - an introduction 00:09:48 Duration
Lecture 2 Insertion and Lookup in a Binary Search Tree 00:16:59 Duration

Section 12 : Binary Tree Problems

Lecture 1 Minimum Value, Maximum Depth And Mirror 00:12:13 Duration
Lecture 2 Count Trees, Print Range and Is BST 00:14:38 Duration
Lecture 3 Has Path Sum, Print Paths, Least Common Ancestor 00:14:49 Duration

Section 13 : Heaps

Lecture 1 The Heap Is Just The Best Way to Implement a Priority Queue 00:17:14 Duration
Lecture 2 Meet The Binary Heap - It's A Tree At Heart 00:12:38 Duration
Lecture 3 The Binary Heap - Logically A Tree Really An Array 00:17:13 Duration
Lecture 4 The Binary Heap - Making It Real With Code 00:07:37 Duration
Lecture 5 Heapify! 00:19:31 Duration
Lecture 6 Insert And Remove From A Heap 00:16:33 Duration

Section 14 : Revisiting Sorting - The Heap Sort

Lecture 1 Heap Sort Phase I - Heapify 00:19:30 Duration
Lecture 2 Heap Sort Phase II - The Actual Sort

Section 15 : Heap Problems

Lecture 1 Maximum Element In A Minimum Heap and K Largest Elements In A Stream 00:15:53 Duration
Lecture 2 Merge K Sorted Lists Into One Sorted List Using A Heap 00:11:39 Duration
Lecture 3 Find The Median In A Stream Of Elements 00:16:03 Duration

Section 16 : Graphs

Lecture 1 Introducing The Graph 00:15:39 Duration
Lecture 2 Types Of Graphs 00:07:20 Duration
Lecture 3 The Directed And Undirected Graph 00:14:28 Duration
Lecture 4 Representing A Graph In Code 00:08:07 Duration
Lecture 5 Graph Using An Adjacency Matrix
Lecture 6 Graph Using An Adjacency List And Adjacency Set 00:17:52 Duration
Lecture 7 Comparison Of Graph Representations
Lecture 8 Graph Traversal - Depth First And Breadth First 00:14:54 Duration

Section 17 : Graph Algorithms

Lecture 1 Topological Sort In A Graph 00:17:29 Duration
Lecture 2 Implementation Of Topological Sort 00:06:55 Duration
Lecture 3 Design A Course Schedule Considering Pre-reqs For Courses 00:13:00 Duration