Java Data Structures and Algorithms Masterclass

44h 58m 57s
English
Paid

Course description

Welcome to the Java Data Structures and Algorithms Masterclass, the most modern, and the most complete Data Structures and Algorithms in Java course on the internet. At 45+ hours, this is the most comprehensive course online to help you ace your coding interviews and learn about Data Structures and Algorithms in Java. 

Read more about the course

You will see 100+ Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft and how to face Interviews with comprehensive visual explanatory video materials which will bring you closer towards landing the tech job of your dreams!

Learning Java is one of the fastest ways to improve your career prospects as it is one of the most in demand tech skills! This course will help you in better understanding every detail of Data Structures and how algorithms are implemented in high level programming language.

We'll take you step-by-step through engaging video tutorials and teach you everything you need to succeed as a professional programmer.

After finishing this course, you will be able to:

  • Learn basic algorithmic techniques such as greedy algorithms, binary search, sorting and dynamic programming to solve programming challenges.
  • Learn the strengths and weaknesses of a variety of data structures, so you can choose the best data structure for your data and applications
  • Learn many of the algorithms commonly used to sort data, so your applications will perform efficiently when sorting large datasets
  • Learn how to apply graph and string algorithms to solve real-world challenges: finding shortest paths on huge maps and assembling genomes from millions of pieces.

Why this course is so special and different from any other resource available online?

  • This course will take you from very beginning to a very complex and advanced topics in understanding Data Structures and Algorithms!
  • You will get video lectures explaining concepts clearly with comprehensive visual explanations throughout the course.
  • You will also see Interview Questions done at the top technology companies such as Apple,Amazon, Google and Microsoft.
  • I cover everything you need to know about technical interview process!

So whether you are interested in learning the top programming language in the world in-depth and interested in learning the fundamental Algorithms, Data Structures and performance analysis that make up the core foundational skillset of every accomplished programmer/designer or software architect and is excited to ace your next technical interview this is the course for you!

Watch Online

This is a demo lesson

You are viewing the first lesson for free. Subscribe to unlock all 350 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Java Data Structures and Algorithms Masterclass

0:00
/
#1: Curriculum Walkthrough

All Course Lessons (350)

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

Unlock unlimited learning

Get instant access to all 349 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Java Programming Masterclass covering Java 11 & Java 17

Java Programming Masterclass covering Java 11 & Java 17

Sources: udemy
You’ve just stumbled upon the most complete, in-depth Java programming course online. With over 260,000 students enrolled and tens of thousands of 5 star reviews to date, these ...
80 hours 13 minutes 14 seconds
Java Messaging Service - Spring MVC, Spring Boot, ActiveMQ

Java Messaging Service - Spring MVC, Spring Boot, ActiveMQ

Sources: udemy
Apache ActiveMQ is open source message broker developed in Java. Have you ever thought how WhatsApp works ? One to one messaging and one to many messaging tech
1 hour 47 minutes 44 seconds
Data Structures in Java

Data Structures in Java

Sources: javaspecialists.eu
Data Structures in Java (Late 2017 Edition) is an action-packed 8 hours of tips and tricks that professional Java programmers have used for the past 20 years to produce code tha...
8 hours 3 minutes 54 seconds
The Complete Java Developer

The Complete Java Developer

Sources: udemy
This course does not require you to have any previous experience with the Java language and starts with the simplest steps, such as downloading and installing t
40 hours 41 minutes 12 seconds
Algorithms in Java: Live problem solving & Design Techniques

Algorithms in Java: Live problem solving & Design Techniques

Sources: udemy
Algorithm Design Techniques: Live problem-solving in Java. Algorithms are everywhere. One great algorithm applied sensibly can result in a System like GOOGLE! C
19 hours 41 minutes 26 seconds