Data Structures & Algorithms, Level-up for Coding Interviews

Data Structures & Algorithms, Level-up for Coding Interviews

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 243 lectures (29h 48m) | 5.23 GB

Do you find yourself feeling like you get “stuck” every time you get a coding question?

Welcome to Data Structures & Algorithms, Level up Course the only course that provides you an ultimate practice on problem solving process and helping you to take your data structures & algorithms to the next level. The course is taught by an expert instructor Prateek Narang from Google, who is not just a software engineer but also has mentored thousands of students in becoming great programmers & developers.

The Course contains 25+ hours of interactive video content & dozens of coding exercises, teaching you the right tips & tricks in problem solving in a most concise way. Every problem discussion starts with a brute force approach, optimisations and ends with hands-on-coding video in C++ as well.

Here is what you will learn –

Problems on Data Structures

  • Arrays, Strings, Vectors
  • Hashing (Unordered Maps, Maps, Sets)
  • Stacks, Queues, Linked Lists
  • Binary Trees, BSTs, Heaps
  • Graphs, Tries

Problems on Algorithms

  • Brute force, Backtracking
  • Sliding Window Algorithms
  • Sorting, Searching, Binary Search
  • Dynamic Programming Fundamentals
  • Important Graph Algorithms
  • BFS & DFS, Shortest Paths

Course exercises are in C++ but programmers having experience in one or more languages (C++/Java/Python/JavaScript) can definitely do this course, provided they have fundamental understanding of data structures. The course covers both breadth & depth of topics, diving deep where-ever needed. You will also learn how to apply techniques involving like – sorting & searching algorithms, sliding window, binary search, hashing which are very important for problem solving. For advanced topics like Dynamic Programming & Graphs, the course starts from the basics & helps you master these topics from the very fundamentals.

What you’ll learn

  • Accelerate your algorithmic thinking
  • Learn to optimise brute force solutions
  • Learn to apply data structures
  • Learn to write complex codes
  • 150+ carefully curated problems
  • Analysis of space-time complexity
  • Using C++ Standard Template Library
  • Become a 10x Problem Solver
  • Sliding Window, Hashing, Maps & Sets
  • Master Dynamic Programming & Graphs
  • BONUS : Build a LRU Cache
  • Practice Questions on all important topics
Table of Contents

Welcome to Course!
1 Course Orientation!
2 How to do this course
3 C++Java Code Repository!
4 TA Hours Doubt Support Guidelines
5 Exercise Solutions!
6 QA Section

Arrays & Vectors
7 Introduction
8 Vector STL – Demo
9 Vector of Vector – Demo
10 How to submit coding exercises
11 A Note on Sorting!
12 Helpful Webinars [Optional]
13 Pairs
14 Pairs Code
15 Triplets
16 Triplets Code
17 Mountain
18 Mountain Code
19 Longest Band
20 Longest Band Code
21 Rains
22 Rains Code
23 Subarray Sort
24 Subarray Sort Code
25 Minimum Swaps
26 Minimum Swaps Code

String Problems
27 Strings Introduction
28 Searching Inside String!
29 Solution Search All!
30 Space20
31 Space20 Implementation
32 Tokenisation (using sstream)
33 Tokenisation (using strtok)
34 Designing our own String Tokeniser!
35 String Key Sort
36 String Key Sort Implementation
37 Check Subsets
38 Check Subsets Implementation
39 Sort Subsequences
40 Sort Subsequences Code
41 Solution String Normalisation

Sliding Window Problems
42 Sliding Window Introduction
43 Housing (Two Pointer)
44 Housing Implementation
45 Unique Substring (Hashing)
46 Unique Substring Implementation
47 String Window
48 String Window Implementation

Sorting & Searching
49 Merge Sort
50 Merge Sort Code
51 Inversion Count
52 Inversion Count Code
53 Quick Sort
54 Quick Sort Code
55 Quick Select
56 Quick Select Code
57 Smallest String
58 Smallest String Code
59 Sparse Search
60 Sparse Search Code

Binary Search
61 Binary Search – Recap!
62 Frequency Count
63 Frequency Count Code-I
64 Frequency Count Code-II
65 Rotated Search
66 Rotated Search Code
67 Finding Roots
68 Square Roots Code
69 Angry Birds
70 Angry Birds Code
71 Min Pairs
72 Min Pairs Code
73 Game of Greed Concept
74 Game of Greed Code
75 Solution Game of Greed

Recursion Problems
77 Recursion Recap
78 Ladders Concept
79 Ladders Code
80 Subsequence Based Problems
81 Subset Sum to X
82 Subset Sum to X Code
83 Generate Brackets
84 Generate Brackets Code
85 Smart Keypad
86 Smart Keypad Code
87 Permutations
88 N-Queen Problem
89 N-Queen Code
90 N-Queen Code
91 Sudoku
92 Sudoku Code

Linked Lists Problems
93 Linked List Section Introduction
94 Warm Up – Creating a Linked List
95 Practice – Insertion in the Middle
96 Recursive Reverse a Linked List
97 Recursively Reverse a Linked List Code
98 Iterative Reverse
99 Iteratively Reverse a Linked List Code
100 K-Reverse a Linked List
101 K-Reverse Code
102 Merge Two Sorted Linked Lists
103 Merge Two Sorted Linked Lists Code
104 Runner Technique
105 Merge Sort on Linked List
106 Merge Sort Linked List Code

Stacks & Queue Problems
107 Stacks, Queue, Deque Recap
108 Balanced Paranthesis
109 Balanced Paranthesis Code
110 Redundant Paranthesis
111 Redundant Paranthesis Code
112 First Non-Repeating Letter
113 First Non-Repeating Code
114 Max Subarray (Sliding Window + Deque)
115 Simplify Path
116 Simplify Path Code
117 Solution Stock Span

Binary Trees Problems
118 Binary Trees Recap
119 Build Tree – Boilerplate Code
120 Level Order Print
121 Level Order Print Code
122 Level Order Build
123 Level Order Build Code
124 Tree Diameter Concept
125 Tree Diameter Code
126 Tree Diameter Optimised Code
127 Replace with Descendant Sum
128 Replace with Descendant Sum Code
129 Height of Tree
130 Height Balanced Tree Concept
131 Height Balanced Tree Code
132 Max Subset Sum Tree
133 Max Subset Sum Tree Code
134 Print At LevelK
135 Nodes at Distance K
136 Nodes at Distance K Code
137 Vertical Order Print
138 Vertical Order Print Code

BST Problems
139 BST Introduction
140 BST Creation Recap
141 Minimum Height BST
142 Minmum Height BST Code
143 Closest in BST
144 Closest in BST Code
145 Tree to Linked List
146 Tree 2 Linked List Code
147 Inorder Successor in BST
148 Inorder Successor in BST Code

Priority Queue Problems
149 Heaps – Recap!
150 Sorting using Heap!
151 Finding Cabs
152 Finding Cabs Implementation
153 Merging Ropes
154 Merging Ropes Implementation
155 Running Median
156 Running Median Implementation
157 Merging K-Arrays
158 Merge K-Sorted Arrays Code

Hashing Problems
159 Introduction to Hashing
160 Triplets in GP Hashing with Slider
161 Triplets in GP Implementation
162 Counting Rectangles Sets
163 Counting Rectangles Implementation
164 Counting Triangles Unordered Maps
165 Counting Triangles Implementation
166 Anagrams in Substrings Maps
167 Anagrams in Substrings Implementation
168 Quick Brown Fox Hashing with DP
169 Quick Brown Fox Implementation

Tries & Pattern Matching Problems
170 Tries Introduction
171 Prefix Trie Implementation
172 Suffix Trie
173 Suffix Trie Implementation
174 Cute Little Cat (Trie + Hashing)
175 Cute Little Cat Implementation
176 Biggest XOR (Trie + Bitmasks)
177 Biggest XOR Implementation

Graphs Problem Solving
178 Graphs Section Introduction
179 Graphs 10 Cool Applications
180 Graph Key Terms
181 Adjacency List Representation
182 Adjacency List Representation with Node Class
183 Storing Weighted Graphs
184 Breadth First Search (BFS)
185 BFS Code
186 Shortest Path using BFS
187 Shortest Path using BFS Code
188 Solution – Snakes & Ladders
189 Depth First Search (DFS)
190 DFS Code
191 Cycle Detection in Undirected Graphs
192 Solution – Cycle Detection in Undirected Graph
193 Backedge Detection
194 Solution – Cycle Detection in Directed Graph
195 Dijkshtra’s Algorithm
196 Dijkshtra’s Algorithm Code
197 Board Game (Trie+Backtracking+Graph)
198 Board Game Implementation
199 Solution – Shortest Grid Path
200 Solution – Largest Island
201 Solution – Graph Sequence

Dynamic Programming (1D)
202 Introduction to Dynamic Programming
203 A Note about DP
204 N-K Ladders (3 Approaches)
205 N-K Ladders Code (Top Down)
206 N-K Ladders Code (Bottom Up)
207 Coin Change
208 Coin Change Code
209 Cutting Rods Solved!
210 Min Array Jumps
211 Min Array Jumps Code
212 Frog’s Min Cost-I
213 Frog’s Min Cost-I Code
214 Maximum Non Adjacent Sum
215 Maximum Non Adjacent Sum Code
216 Longest Increasing Sequence
217 Longest Increasing Subsequence Code
218 Box Stacking Problem
219 Box Stacking Code
220 Counting Trees
221 Counting Trees Code
222 Counting Trees Bottom Up Code

Dynamic Programming (2D)
223 Longest Common Subsequence
224 LCS Top Down
225 LCS Bottom Up & Print
226 Selling Wines
227 Selling Wines – Top Down DP Code
228 Note about Selling Wines
229 Selling Wines – Diagonal Table Filling
230 Selling Wines – Bottom Up DP Code
231 Counting Subsequences
232 Counting Subsequences Recursive
233 Counting Subsequences – Table Filling
234 Counting Subsequences – Bottom Up
235 Knapsack Problem
236 Knapsack Problem Recursive
237 Knapsack Problem Bottom Up

DSA Project – LRU Cache
238 LRU Cache Introduction
239 LRU Data Structure
240 LRU Code-I
241 LRU Code – II
242 LRU Code – III
243 LRU Code – IV

Homepage