Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай Java Data Structures and Algorithms Masterclass, а также все другие курсы, прямо сейчас!
• Урок 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
• Урок 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
• Урок 68. 00:03:50
• Урок 69. 00:10:54
• Урок 70. 00:04:02
• Урок 71. 00:09:54
• Урок 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
• Урок 76. 00:08:50
• Урок 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
• Урок 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
• Урок 93. 00:09:55
• Урок 94. 00:06:30
• Урок 95. 00:14:55
• Урок 96. 00:08:36
• Урок 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
• Урок 101. 00:13:45
Deletion Method in Doubly Linked List
• Урок 102. 00:07:25
• Урок 103. 00:05:28
Time and Space Complexity of Doubly Linked List
• Урок 104. 00:12:22
• Урок 105. 00:10:30
• Урок 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
• Урок 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
• Урок 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
• Урок 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
• Урок 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
• Урок 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
• Урок 259. 00:11:22
• Урок 260. 00:06:30
• Урок 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
• Урок 270. 00:07:24
• Урок 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