Урок 1. 00:08:22
Curriculum Walkthrough
Урок 2. 00:03:27
What is a data structure?
Урок 3. 00:03:54
What is an algorithm?
Урок 4. 00:03:41
Why are Data Structures and Algorithms important?
Урок 5. 00:03:23
Types of Data Structures
Урок 6. 00:04:01
Types of Algorithms
Урок 7. 00:01:06
Goals : what you will learn by the end of this section
Урок 8. 00:05:01
What is Recursion?
Урок 9. 00:03:22
Why do we need Recursion?
Урок 10. 00:09:16
The Logic Behind Recursion
Урок 11. 00:04:14
Recursive vs Iterative Solution
Урок 12. 00:06:22
When to Use/Avoid Recursion?
Урок 13. 00:13:43
How to Write Recursion in 3 Steps?
Урок 14. 00:09:38
Fibonacci Series using Recursion
Урок 15. 00:08:51
Question 1 - Sum of Digits
Урок 16. 00:05:56
Question 2 - Power
Урок 17. 00:06:41
Question 3 - GCD
Урок 18. 00:08:17
Question 4 - Decimal to Binary
Урок 19. 00:03:21
What is Big O?
Урок 20. 00:08:03
Big O Notations (Big O, Big Omega, Big Theta)
Урок 21. 00:10:08
Most Common Time Complexities
Урок 22. 00:02:42
Space Complexity
Урок 23. 00:03:56
Drop Constants and Non Dominant Terms
Урок 24. 00:02:28
Addition vs Multiplication
Урок 25. 00:04:49
How to Measure the Code using Big O?
Урок 26. 00:07:20
How to Measure Recursive Algorithm?
Урок 27. 00:04:08
How to Measure Recursive Algorithm with Multiple Calls?
Урок 28. 00:05:47
Question 1 - Time Complexity of Method that returns Sum and Product of Array
Урок 29. 00:05:51
Question 2 - Time Complexity of Print Pairs Method
Урок 30. 00:04:32
Question 3 - Time Complexity of Print Unordered Pairs Method
Урок 31. 00:02:15
Question 4 - Find Time Complexity for Given Method
Урок 32. 00:01:36
Question 5 - Find Time Complexity for Given Method
Урок 33. 00:06:05
Question 6 - Time Complexity of Reverse Array Function
Урок 34. 00:03:24
Question 7 - Equivalent to O(N)
Урок 35. 00:02:52
Question 8 - Time Complexity of Factorial
Урок 36. 00:02:56
Question 9 - Time Complexity of Fibonacci
Урок 37. 00:03:00
Question 10 - Time Complexity Powers Of 2
Урок 38. 00:07:58
What is an Array?
Урок 39. 00:06:52
Types of Arrays
Урок 40. 00:03:53
Arrays in Memory
Урок 41. 00:09:06
Create an Array
Урок 42. 00:11:37
Insertion in Array
Урок 43. 00:05:13
Accessing Elements in Array
Урок 44. 00:07:28
Array Traversal
Урок 45. 00:07:53
Search for Array Element
Урок 46. 00:05:58
Delete Array Element
Урок 47. 00:04:21
Time and Space Complexity of 1D Arrays
Урок 48. 00:11:06
Create Two Dimensional Array
Урок 49. 00:10:39
Insertion - Two Dimensional Array
Урок 50. 00:07:17
Accessing Two Dimensional Array Element
Урок 51. 00:07:22
Traverse Two Dimensional Array
Урок 52. 00:08:15
Searching Two Dimensional Array
Урок 53. 00:06:38
Delete Two Dimensional Array Element
Урок 54. 00:04:07
Time and Space Complexity of 2D Arrays
Урок 55. 00:02:38
When to Use/Avoid Arrays
Урок 56. 00:02:52
Goals - what you will make by the end of this section
Урок 57. 00:07:09
Calculate Average Temperature
Урок 58. 00:06:44
Find the Days Above Average Temperature
Урок 59. 00:00:43
Section Goals
Урок 60. 00:06:57
Solution - Missing Number
Урок 61. 00:09:12
Solution - Pairs
Урок 62. 00:05:27
Solution - Finding a Number in an Array
Урок 63. 00:06:06
Solution - Max Product of Two Integers
Урок 64. 00:05:16
Solution - IsUnique / Contains Duplicate - LeetCode 217
Урок 65. 00:08:35
Solution - Permutation
Урок 66. 00:12:30
Rotate Matrix / Image - LeetCode 48
Урок 67. 00:05:58
What is a Linked List?
Урок 68. 00:03:50
Linked List vs Array
Урок 69. 00:10:54
Types of Linked List
Урок 70. 00:04:02
Linked List in the Memory
Урок 71. 00:09:54
Creation of Singly Linked List
Урок 72. 00:03:54
Insertion in Singly Linked List in Memory
Урок 73. 00:08:03
Insertion Algorithm in Singly Linked List
Урок 74. 00:14:56
Insertion Method in Singly Linked List
Урок 75. 00:09:49
Traversal of Singly Linked List
Урок 76. 00:08:50
Searching in Singly Linked List
Урок 77. 00:09:38
Deletion of a Node from Singly Linked List
Урок 78. 00:15:39
Deletion Method in Singly Linked List
Урок 79. 00:05:57
Deletion of Entire Singly Linked List
Урок 80. 00:04:06
Time and Space Complexity of Singly Linked List
Урок 81. 00:12:59
Create Circular Singly Linked List
Урок 82. 00:07:31
Insertion in Circular Singly Linked List
Урок 83. 00:04:49
Insertion Algorithm in Circular Singly Linked List
Урок 84. 00:12:00
Insertion Method Circular Singly Linked List
Урок 85. 00:09:58
Traversal of Circular Singly Linked List
Урок 86. 00:09:49
Searching a Node in Circular Singly Linked List
Урок 87. 00:08:39
Deletion of a Node from Circular Singly List
Урок 88. 00:05:20
Deletion Algorithm in Circular Singly Linked List
Урок 89. 00:11:21
Deletion Method in Circular Singly Linked List
Урок 90. 00:06:32
Delete Entire Circular Singly Linked List
Урок 91. 00:05:33
Time and Space Complexity of Circular Singly Linked List
Урок 92. 00:13:46
Create Doubly Linked List
Урок 93. 00:09:55
Insertion Doubly Linked List
Урок 94. 00:06:30
Insertion Algorithm Doubly Linked List
Урок 95. 00:14:55
Insertion Method Doubly Linked List
Урок 96. 00:08:36
Traversal of Doubly Linked List
Урок 97. 00:08:22
Reverse Traversal of Doubly Linked List
Урок 98. 00:08:56
Searching for a Node in Doubly Linked List
Урок 99. 00:08:34
Deletion of a Node in Doubly Linked List
Урок 100. 00:06:09
Deletion Algorithm Doubly Linked List
Урок 101. 00:13:45
Deletion Method in Doubly Linked List
Урок 102. 00:07:25
Delete Entire Doubly Linked List
Урок 103. 00:05:28
Time and Space Complexity of Doubly Linked List
Урок 104. 00:12:22
Create Doubly Linked List
Урок 105. 00:10:30
Insertion Circular Doubly Linked List
Урок 106. 00:06:59
Insertion Algorithm Circular Doubly Linked List
Урок 107. 00:13:55
Insertion Method Circular Doubly Linked List
Урок 108. 00:08:32
Traversal of Circular Doubly Linked List
Урок 109. 00:08:18
Reverse Traversal of Circular Doubly Linked List
Урок 110. 00:09:00
Search for a Node in Circular Doubly Linked List
Урок 111. 00:10:54
Deletion in Circular Doubly Linked List
Урок 112. 00:06:48
Deletion Algorithm in Circular Doubly Linked List
Урок 113. 00:11:52
Deletion Method in Circular Doubly Linked List
Урок 114. 00:07:41
Delete Entire Circular Doubly Linked List
Урок 115. 00:04:35
Time and Space Complexity of Circular Doubly Linked List
Урок 116. 00:07:13
Time Complexity of Array vs Linked List
Урок 117. 00:10:19
Linked List Class
Урок 118. 00:10:52
Solution - Remove Dups
Урок 119. 00:09:20
Solution - Return Nth to Last
Урок 120. 00:09:37
Solution - Partition
Урок 121. 00:10:52
Solution - Sum Lists
Урок 122. 00:13:21
Solution - Intersection
Урок 123. 00:05:28
What and Why of Stack?
Урок 124. 00:06:33
Stack Operations
Урок 125. 00:01:33
Stack using Array vs Linked List
Урок 126. 00:08:23
Stack Operations using Array (Create, isEmpty, isFull)
Урок 127. 00:12:41
Stack Operations using Array (Push, Pop, Peek, Delete)
Урок 128. 00:02:49
Time and Space Complexity of Stack using Array
Урок 129. 00:06:47
Stack Operations using Linked List
Урок 130. 00:18:12
Stack methods - Push , Pop, Peek, Delete and isEmpty using Linked List
Урок 131. 00:03:22
Time and Space Complexity of Stack using Linked List
Урок 132. 00:02:15
When to Use/Avoid Stack
Урок 133. 00:06:33
What is a Queue?
Урок 134. 00:00:00
Linear Queue Operations using Array
Урок 135. 00:14:45
Create, isFull, isEmpty and enQueue methods using Linear Queue Array
Урок 136. 00:10:46
Dequeue, Peek and Delete Methods using Linear Queue Array
Урок 137. 00:03:49
Time and Space Complexity of Linear Queue using Array
Урок 138. 00:04:37
Why Circular Queue?
Урок 139. 00:08:00
Circular Queue Operations using Array
Урок 140. 00:18:20
Create, Enqueue, isFull and isEmpty Methods in Circular Queue using Array
Урок 141. 00:12:22
Dequeue, Peek and Delete Methods in Circular Queue using Array
Урок 142. 00:03:56
Time and Space Complexity of Circular Queue using Array
Урок 143. 00:07:54
Queue Operations using Linked List
Урок 144. 00:10:45
Create, Enqueue and isEmpty Methods in Queue using Linked List
Урок 145. 00:10:28
Dequeue, Peek and Delete Methods in Queue using Linked List
Урок 146. 00:03:04
Time and Space Complexity of Queue using Linked List
Урок 147. 00:02:28
Array vs Linked List Implementation
Урок 148. 00:01:57
When to Use/Avoid Queue?
Урок 149. 00:01:04
Goals
Урок 150. 00:23:49
Solution - Three in One
Урок 151. 00:12:48
Solution - Stack Minimum
Урок 152. 00:14:29
Solution Part 1 - Stack of Plates
Урок 153. 00:10:57
Solution Part 2 - Stack of Plates
Урок 154. 00:08:11
Solution Part 3 - Follow UP
Урок 155. 00:11:50
Solution - Queue via Stacks
Урок 156. 00:24:49
Solution - Animal Shelter
Урок 157. 00:07:26
What is a Tree?
Урок 158. 00:02:41
Why Tree?
Урок 159. 00:05:17
Tree Terminology
Урок 160. 00:09:44
Creating a Basic Tree in Java
Урок 161. 00:03:10
What is A Binary Tree?
Урок 162. 00:03:50
Types of Binary Tree
Урок 163. 00:07:35
Binary Tree Representation
Урок 164. 00:06:10
Create Binary Tree using Linked List
Урок 165. 00:12:02
PreOrder Traversal in Binary Tree using Linked List
Урок 166. 00:08:49
InOrder Traversal in Binary Tree using Linked List
Урок 167. 00:07:03
PostOrder Traversal in Binary Tree using Linked List
Урок 168. 00:08:48
LevelOrder Traversal in Binary Tree using Linked List
Урок 169. 00:09:31
Search Method in Binary Tree (Linked List)
Урок 170. 00:12:37
Insert Method in Binary Tree (Linked List)
Урок 171. 00:20:30
Delete a Node in Binary Tree (Linked List)
Урок 172. 00:02:40
Delet Entire Binary Tree (Linked List)
Урок 173. 00:07:28
Create Binary Tree (Array)
Урок 174. 00:07:57
Insert Method Binary Tree (Array)
Урок 175. 00:07:26
PreOrder Traversal Binary Tree (Array)
Урок 176. 00:06:25
InOrder Traversal Binary Tree (Array)
Урок 177. 00:05:24
PostOrder Traversal Binary Tree (Array)
Урок 178. 00:05:46
levelOrder Traversal Binary Tree (Array)
Урок 179. 00:07:07
Search Method Binary Tree (Array)
Урок 180. 00:06:33
Delete a Node Binary Tree (Array)
Урок 181. 00:03:07
Delete Binary Tree (Array)
Урок 182. 00:06:01
Array vs Linked List in Binary Tree Implementation
Урок 183. 00:03:29
What is a Binary Search Tree? Why do we need it?
Урок 184. 00:04:38
Create Binary Search Tree
Урок 185. 00:12:07
Insert a Node to Binary Search Tree
Урок 186. 00:04:45
PreOrder Traversal Binary Search Tree
Урок 187. 00:04:10
InOrder Traversal Binary Search Tree
Урок 188. 00:03:41
PostOrder Traversal Binary Search Tree
Урок 189. 00:05:12
Level Order Traversal Binary Search Tree
Урок 190. 00:07:42
Search in Binary Search Tree
Урок 191. 00:17:19
Delete a Node in Binary Search Tree
Урок 192. 00:02:51
Delete BST
Урок 193. 00:03:37
Time and Space Complexity of BST
Урок 194. 00:07:24
What is an AVL Tree?
Урок 195. 00:04:00
Why Do We Need AVL Tree?
Урок 196. 00:12:19
Common Operations on AVL Tree
Урок 197. 00:13:33
Insert a Node in AVL (Left Left Condition)
Урок 198. 00:08:31
Insert a Node in AVL (Left Right Condition)
Урок 199. 00:08:01
Insert a Node in AVL (Right Right Condition)
Урок 200. 00:06:37
Insert a Node in AVL (Right Left Condition)
Урок 201. 00:14:27
Insert a Node in AVL (All Together)
Урок 202. 00:21:06
Insert a Node in AVL (Method in Practice)
Урок 203. 00:10:05
Delete a Node from AVL (LL, LR, RR, RR)
Урок 204. 00:07:05
Delete a Node from ALL (All Together)
Урок 205. 00:13:42
Delete a Node from AVL (Method in practice)
Урок 206. 00:02:11
Delete Entire AVL Tree
Урок 207. 00:03:03
Time and Space Complexity of AVL
Урок 208. 00:02:57
Binary Search Tree vs AVL
Урок 209. 00:07:40
What is Binary Heap? Why do we need Binary Heap?
Урок 210. 00:18:48
Common Operations on Binary Heap
Урок 211. 00:14:46
Insert a Node in Binary Heap
Урок 212. 00:19:20
Extract a Node from Binary Heap
Урок 213. 00:02:46
Delete Entire Binary Heap
Урок 214. 00:05:31
Time and Space Complexity of Binary Heap
Урок 215. 00:10:58
What is a Trie? Why we need Trie?
Урок 216. 00:06:24
Common Operations on a Trie (Creation)
Урок 217. 00:14:42
Insert a String in Trie
Урок 218. 00:13:01
Search for a String in Trie
Урок 219. 00:16:58
Delete a String from Trie
Урок 220. 00:02:15
Practical Uses of Trie
Урок 221. 00:05:38
What is Hashing? Why we need it?
Урок 222. 00:04:46
Hashing Terminology
Урок 223. 00:09:47
Hash Functions
Урок 224. 00:16:52
Types of Collision Resolution Techniques - Direct Chaining (Insert)
Урок 225. 00:07:29
Direct Chaining Implementation - (Search, Delete)
Урок 226. 00:04:41
Hash Table is Full
Урок 227. 00:17:45
Collision Resolution Technique - Linear Probing (Insert)
Урок 228. 00:08:39
Collision Resolution Technique - Linear Probing (Search, Delete)
Урок 229. 00:09:12
Collision Resolution Technique - Open Addressing : Quadratic Probing
Урок 230. 00:13:50
Collision Resolution Technique - Open Addressing : Double Hashing
Урок 231. 00:05:11
Pros and Cons of Resolution Techniques
Урок 232. 00:04:18
Practical Use of Hashing
Урок 233. 00:02:10
Hashing vs Other DS
Урок 234. 00:03:00
What is Sorting?
Урок 235. 00:06:52
Types of Sorting
Урок 236. 00:05:10
Sorting Terminology
Урок 237. 00:15:45
Bubble Sort
Урок 238. 00:11:35
Selection Sort
Урок 239. 00:13:51
Insertion Sort
Урок 240. 00:21:11
Bucket Sort
Урок 241. 00:15:49
Merge Sort
Урок 242. 00:22:11
Quick Sort
Урок 243. 00:18:21
Heap Sort
Урок 244. 00:01:30
Comparison of Sorting Algorithms
Урок 245. 00:01:45
Introduction To Search Algorithms
Урок 246. 00:04:01
Linear Search
Урок 247. 00:07:12
Linear Search in Java
Урок 248. 00:03:04
Binary Search
Урок 249. 00:13:04
Binary Search in Java
Урок 250. 00:05:15
Time Complexity of Binary Search
Урок 251. 00:01:41
What you will learn
Урок 252. 00:04:50
What is a Graph? Why do we need Graph
Урок 253. 00:05:06
Graph Terminology
Урок 254. 00:05:47
Types of Graph
Урок 255. 00:09:55
Graph Representation
Урок 256. 00:12:57
Graph in Java using Adjacency Matrix
Урок 257. 00:09:51
Graph in Java using Adjacency List
Урок 258. 00:10:37
Breadth First Search Algorithm (BFS)
Урок 259. 00:11:22
Breadth First Search Algorithm (BFS) in Java - Adjacency Matrix
Урок 260. 00:06:30
Breadth First Search Algorithm (BFS) in Java - Adjacency List
Урок 261. 00:03:25
Time Complexity of Breadth First Search (BFS) Algorithm
Урок 262. 00:07:23
Depth First Search (DFS) Algorithm
Урок 263. 00:06:35
Depth First Search (DFS) Algorithm in Java - Adjacency List
Урок 264. 00:06:35
Depth First Search (DFS) Algorithm in Java - Adjacency Matrix
Урок 265. 00:03:08
Time Complexity of Depth First Search (DFS) Algorithm
Урок 266. 00:04:33
BFS Traversal vs DFS Traversal
Урок 267. 00:02:57
What is Topological Sort?
Урок 268. 00:09:14
Topological Sort Algorithm
Урок 269. 00:10:56
Topological Sort using Adjacency List
Урок 270. 00:07:24
Topological Sort using Adjacency Matrix
Урок 271. 00:03:14
Time and Space Complexity of Topological Sort
Урок 272. 00:04:46
What is Single Source Shortest Path Problem?
Урок 273. 00:07:04
Breadth First Search (BFS) for Single Source Shortest Path Problem (SSSPP)
Урок 274. 00:11:09
BFS for SSSPP in Java using Adjacency List
Урок 275. 00:07:25
BFS for SSSPP in Java using Adjacency Matrix
Урок 276. 00:02:51
Time and Space Complexity of BFS for SSSPP
Урок 277. 00:03:38
Why does BFS not work with Weighted Graph?
Урок 278. 00:02:16
Why does DFS not work for SSSP?
Урок 279. 00:06:23
Dijkstra's Algorithm for SSSPP
Урок 280. 00:12:36
Dijkstra's Algorithm in Java - 1
Урок 281. 00:08:47
Dijkstra's Algorithm in Java - 2
Урок 282. 00:03:47
Dijkstra's Algorithm with Negative Cycle
Урок 283. 00:10:56
Bellman Ford Algorithm for SSSPP
Урок 284. 00:05:19
Bellman Ford Algorithm with Negative Cycle
Урок 285. 00:04:21
Why Bellman Ford runs V-1 times?
Урок 286. 00:10:46
Bellman Ford Algorithm Implementation in Java
Урок 287. 00:03:38
BFS vs Dijkstra vs Bellman Ford
Урок 288. 00:04:24
What is All Pairs Shortest Path Problem?
Урок 289. 00:04:25
Dry Run for All Pairs Shortest Path Problem
Урок 290. 00:09:11
Floyd Warshall Algorithm
Урок 291. 00:04:50
Why Floyd Warshall Algorithm?
Урок 292. 00:02:34
Floyd Warshall with Negative Cycle
Урок 293. 00:12:28
Floyd Warshall in Java
Урок 294. 00:02:43
BFS vs Dijkstra vs Bellman Ford vs Floyd Warshall Algorithms
Урок 295. 00:04:34
What is Minimum Spanning Tree?
Урок 296. 00:02:56
What is Disjoint Set?
Урок 297. 00:11:51
Disjoint Set in Java
Урок 298. 00:09:12
Kruskal Algorithm
Урок 299. 00:15:46
Kruskal Algorithm in Java
Урок 300. 00:05:42
Prim's Algorithm
Урок 301. 00:09:59
Prim's Algorithm in Java
Урок 302. 00:03:35
Kruskal vs Prim's Algorithms
Урок 303. 00:00:40
Introduction
Урок 304. 00:10:52
Solution to Route Between Nodes
Урок 305. 00:05:37
What is Greedy Algorithm?
Урок 306. 00:08:31
Known Greedy Algorithms
Урок 307. 00:05:37
Activity Selection Problem
Урок 308. 00:17:07
Activity Selection Problem in Java
Урок 309. 00:04:27
Coin Change Problem
Урок 310. 00:08:11
Coin Change Problem in Java
Урок 311. 00:05:23
Fractional Knapsack Problem
Урок 312. 00:17:09
Fractional Knapsack Problem in Java
Урок 313. 00:06:59
What is a Divide and Conquer Algorithm?
Урок 314. 00:06:52
Common Divide and Conquer Algorithms
Урок 315. 00:05:00
How to solve Fibonacci series using Divide and Conquer approach?
Урок 316. 00:06:27
Number Factor
Урок 317. 00:05:45
Number Factor in Java
Урок 318. 00:07:11
House Robber
Урок 319. 00:06:29
House Robber in Java
Урок 320. 00:06:16
Convert One String to Another
Урок 321. 00:07:56
Convert One String to Another in Java
Урок 322. 00:05:11
Zero One Knapsack Problem
Урок 323. 00:07:51
Zero One Knapsack Problem in Java
Урок 324. 00:06:23
Longest Common Subsequence Problem
Урок 325. 00:07:04
Longest Common Subsequence Problem in Java
Урок 326. 00:05:48
Longest Palindromic Subsequence Problem
Урок 327. 00:06:20
Longest Palindromic Subsequence Problem in Java
Урок 328. 00:05:03
Minimum Cost to Reach Last Cell
Урок 329. 00:05:07
Minimum Cost to Reach Last Cell in Java
Урок 330. 00:05:17
Number of Paths To Reach The Last Cell with Given Cost
Урок 331. 00:06:10
Number of Paths To Reach The Last Cell with Given Cost in Java
Урок 332. 00:04:58
What is Dynamic Programming? (Overlapping property)
Урок 333. 00:02:09
Where Does the Name of DP Come From?
Урок 334. 00:11:28
Top Down with Memoization
Урок 335. 00:07:44
Bottom Up with Tabulation
Урок 336. 00:04:18
Top Down vs Bottom Up
Урок 337. 00:04:31
Is Merge Sort Dynamic Programming?
Урок 338. 00:12:27
Number Factor Problem using Dynamic Programming
Урок 339. 00:08:34
Number Factor : Top Down and Bottom Up
Урок 340. 00:10:24
House Robber Problem using Dynamic Programming
Урок 341. 00:05:30
Convert one string to another using Dynamic Programming
Урок 342. 00:02:58
Introduction
Урок 343. 00:06:02
Step 1 - Understand the Problem
Урок 344. 00:06:41
Step 2 - Examples
Урок 345. 00:07:44
Step 3 - Break it Down
Урок 346. 00:10:56
Step 4 - Solve or Simplify
Урок 347. 00:07:34
Step 5 - Look Back and Refactor
Урок 348. 00:10:02
What is Backtracking?
Урок 349. 00:04:35
Backtracking vs Brute Force
Урок 350. 00:09:39
N - Queens Problem