#### 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