Section 1 : Introduction

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

Section 2 : Pointer and Arrays

Lecture 2 Materials Text
Lecture 3 Introduction to pointers 19:58
Lecture 4 Pointer problems and arrays 13:34
Lecture 5 Pointer arithmetic 11:42
Lecture 6 Practice makes perfect - pointer problems 7:36

Section 3 : Strings are just pointers at heart

Lecture 7 Working with strings 14:5
Lecture 8 Pointer as arguments to functions 9:38
Lecture 9 Practice makes perfect - string problems 19:22

Section 4 : Linked lists can be fun!

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

Section 5 : Bit Manipulation

Lecture 17 Bit Manipulation - I 10:6
Lecture 18 Bit Manipulation - II 8:38
Lecture 19 Useful Bit Manipulation Techniques 13:12
Lecture 20 Get And Set The Nth Bit 13:28
Lecture 21 Print And Count Bits 18:52
Lecture 22 Reverse The Bits In An Integer 10:9

Section 6 : General programming problems - practice makes perfect

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

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

Lecture 27 Performance and Complexity 16:1
Lecture 28 Big O Notation
Lecture 29 Big O Notation More Examples 19:11
Lecture 30 Sorting Trade-Offs 10:51
Lecture 31 Selection Sort 15:23
Lecture 32 Bubble Sort 14:41
Lecture 33 Insertion Sort 14:31
Lecture 34 Shell Sort 14:11
Lecture 35 Merge Sort 19:22
Lecture 36 Quick Sort 15:28
Lecture 37 Binary Search - search quickly through a sorted list 11:9

Section 8 : Recursion and the recursive sense

Lecture 38 What is recursion - why is it so hard 16:58
Lecture 39 Binary search - implemented recursively 13:20
Lecture 40 Find all subsets of a set 14:54
Lecture 41 Check whether 2 binary trees are the same 14:52
Lecture 42 Implement paint fill to color a region on screen 11:1
Lecture 43 Build A car Given Tasks And Dependencies 14:18
Lecture 44 Generate Anagrams Of A Word 16:35
Lecture 45 Help A Rat Find It's Way Through a Maze 13:0
Lecture 46 Place 8 Queens On A Board Safely 17:49

Section 9 : Stacks And Queues

Lecture 47 Meet The Stack - Simple But Powerful 15:39
Lecture 48 Building A Stack Using Java 16:52
Lecture 49 Match Parenthesis To Check A Well Formed Expression 11:20
Lecture 50 Find The Minimum Element In A Stack In Constant Time 8:50
Lecture 51 Meet The Queue - A Familiar Sight In Everyday Life 14:10
Lecture 52 The Circular Queue - Tricky But Fast 19:43
Lecture 53 Build A Queue With Two Stacks 17:29

Section 10 : Binary Trees

Lecture 54 Meet The Binary Tree - A Hierarchical Data Structure 13:2
Lecture 55 Breadth First Traversal 18:42
Lecture 56 Depth First - Pre-OrderTraversal 14:33
Lecture 57 Depth First - In-Order and Post-Order Traversal 13:50

Section 11 : Binary Search Trees

Lecture 58 The Binary Search Tree - an introduction 9:48
Lecture 59 Insertion and Lookup in a Binary Search Tree 16:59

Section 12 : Binary Tree Problems

Lecture 60 Minimum Value, Maximum Depth And Mirror 12:13
Lecture 61 Count Trees, Print Range and Is BST 14:38
Lecture 62 Has Path Sum, Print Paths, Least Common Ancestor 14:49

Section 13 : Heaps

Lecture 63 The Heap Is Just The Best Way to Implement a Priority Queue 17:14
Lecture 64 Meet The Binary Heap - It's A Tree At Heart 12:38
Lecture 65 The Binary Heap - Logically A Tree Really An Array 17:13
Lecture 66 The Binary Heap - Making It Real With Code 7:37
Lecture 67 Heapify! 19:31
Lecture 68 Insert And Remove From A Heap 16:33

Section 14 : Revisiting Sorting - The Heap Sort

Lecture 69 Heap Sort Phase I - Heapify 19:30
Lecture 70 Heap Sort Phase II - The Actual Sort

Section 15 : Heap Problems

Lecture 71 Maximum Element In A Minimum Heap and K Largest Elements In A Stream 15:53
Lecture 72 Merge K Sorted Lists Into One Sorted List Using A Heap 11:39
Lecture 73 Find The Median In A Stream Of Elements 16:3

Section 16 : Graphs

Lecture 74 Introducing The Graph 15:39
Lecture 75 Types Of Graphs 7:20
Lecture 76 The Directed And Undirected Graph 14:28
Lecture 77 Representing A Graph In Code 8:7
Lecture 78 Graph Using An Adjacency Matrix
Lecture 79 Graph Using An Adjacency List And Adjacency Set 17:52
Lecture 80 Comparison Of Graph Representations
Lecture 81 Graph Traversal - Depth First And Breadth First 14:54

Section 17 : Graph Algorithms

Lecture 82 Topological Sort In A Graph 17:29
Lecture 83 Implementation Of Topological Sort 6:55
Lecture 84 Design A Course Schedule Considering Pre-reqs For Courses 13:0