Java Data Structures and Algorithms Masterclass
 Description
 Curriculum
 FAQ
 Reviews
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. 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 stepbystep 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 realworld 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 indepth 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!
And this is what you get by signing up today:
Lifetime access to 44+ hours of HD quality videos. No monthly subscription. Learn at your own pace, whenever you want
Friendly and fast support in the course Q&A whenever you have questions or get stuck
FULL money back guarantee for 30 days!
This course is designed to help you to achieve your career goals. Whether you are looking to get more into Data Structures and Algorithms , increase your earning potential or just want a job with more freedom, this is the right course for you!
The topics that are covered in this course.
Section 1 – Introduction

What are Data Structures?

What is an algorithm?

Why are Data Structures and Algorithms important?

Types of Data Structures

Types of Algorithms
Section 2 – Recursion

What is Recursion?

Why do we need recursion?

How Recursion works?

Recursive vs Iterative Solutions

When to use/avoid Recursion?

How to write Recursion in 3 steps?

How to find Fibonacci numbers using Recursion?
Section 3 – Cracking Recursion Interview Questions

Question 1 – Sum of Digits

Question 2 – Power

Question 3 – Greatest Common Divisor

Question 4 – Decimal To Binary
Section 4 – Bonus CHALLENGING Recursion Problems (Exercises)

power

factorial

productofArray

recursiveRange

fib

reverse

isPalindrome

someRecursive

flatten

captalizeFirst

nestedEvenSum

capitalizeWords

stringifyNumbers

collectStrings
Section 5 – Big O Notation

Analogy and Time Complexity

Big O, Big Theta and Big Omega

Time complexity examples

Space Complexity

Drop the Constants and the non dominant terms

Add vs Multiply

How to measure the codes using Big O?

How to find time complexity for Recursive calls?

How to measure Recursive Algorithms that make multiple calls?
Section 6 – Top 10 Big O Interview Questions (Amazon, Facebook, Apple and Microsoft)

Product and Sum

Print Pairs

Print Unordered Pairs

Print Unordered Pairs 2 Arrays

Print Unordered Pairs 2 Arrays 100000 Units

Reverse

O(N) Equivalents

Factorial Complexity

Fibonacci Complexity

Powers of 2
Section 7 – Arrays

What is an Array?

Types of Array

Arrays in Memory

Create an Array

Insertion Operation

Traversal Operation

Accessing an element of Array

Searching for an element in Array

Deleting an element from Array

Time and Space complexity of One Dimensional Array

One Dimensional Array Practice

Create Two Dimensional Array

Insertion – Two Dimensional Array

Accessing an element of Two Dimensional Array

Traversal – Two Dimensional Array

Searching for an element in Two Dimensional Array

Deletion – Two Dimensional Array

Time and Space complexity of Two Dimensional Array

When to use/avoid array
Section 8 – Cracking Array Interview Questions (Amazon, Facebook, Apple and Microsoft)

Question 1 – Missing Number

Question 2 – Pairs

Question 3 – Finding a number in an Array

Question 4 – Max product of two int

Question 5 – Is Unique

Question 6 – Permutation

Question 7 – Rotate Matrix
Section 9 – CHALLENGING Array Problems (Exercises)

Middle Function

2D Lists

Best Score

Missing Number

Duplicate Number

Pairs
Section 10 – Linked List

What is a Linked List?

Linked List vs Arrays

Types of Linked List

Linked List in the Memory

Creation of Singly Linked List

Insertion in Singly Linked List in Memory

Insertion in Singly Linked List Algorithm

Insertion Method in Singly Linked List

Traversal of Singly Linked List

Search for a value in Single Linked List

Deletion of node from Singly Linked List

Deletion Method in Singly Linked List

Deletion of entire Singly Linked List

Time and Space Complexity of Singly Linked List
Section 11 – Circular Singly Linked List

Creation of Circular Singly Linked List

Insertion in Circular Singly Linked List

Insertion Algorithm in Circular Singly Linked List

Insertion method in Circular Singly Linked List

Traversal of Circular Singly Linked List

Searching a node in Circular Singly Linked List

Deletion of a node from Circular Singly Linked List

Deletion Algorithm in Circular Singly Linked List

Method in Circular Singly Linked List

Deletion of entire Circular Singly Linked List

Time and Space Complexity of Circular Singly Linked List
Section 12 – Doubly Linked List

Creation of Doubly Linked List

Insertion in Doubly Linked List

Insertion Algorithm in Doubly Linked List

Insertion Method in Doubly Linked List

Traversal of Doubly Linked List

Reverse Traversal of Doubly Linked List

Searching for a node in Doubly Linked List

Deletion of a node in Doubly Linked List

Deletion Algorithm in Doubly Linked List

Deletion Method in Doubly Linked List

Deletion of entire Doubly Linked List

Time and Space Complexity of Doubly Linked List
Section 13 – Circular Doubly Linked List

Creation of Circular Doubly Linked List

Insertion in Circular Doubly Linked List

Insertion Algorithm in Circular Doubly Linked List

Insertion Method in Circular Doubly Linked List

Traversal of Circular Doubly Linked List

Reverse Traversal of Circular Doubly Linked List

Search for a node in Circular Doubly Linked List

Delete a node from Circular Doubly Linked List

Deletion Algorithm in Circular Doubly Linked List

Deletion Method in Circular Doubly Linked List

Entire Circular Doubly Linked List

Time and Space Complexity of Circular Doubly Linked List

Time Complexity of Linked List vs Arrays
Section 14 – Cracking Linked List Interview Questions (Amazon, Facebook, Apple and Microsoft)

Linked List Class

Question 1 – Remove Dups

Question 2 – Return Kth to Last

Question 3 – Partition

Question 4 – Sum Linked Lists

Question 5 – Intersection
Section 15 – Stack

What is a Stack?

What and Why of Stack?

Stack Operations

Stack using Array vs Linked List

Stack Operations using Array (Create, isEmpty, isFull)

Stack Operations using Array (Push, Pop, Peek, Delete)

Time and Space Complexity of Stack using Array

Stack Operations using Linked List

Stack methods – Push , Pop, Peek, Delete and isEmpty using Linked List

Time and Space Complexity of Stack using Linked List

When to Use/Avoid Stack

Stack Quiz
Section 16 – Queue

What is a Queue?

Linear Queue Operations using Array

Create, isFull, isEmpty and enQueue methods using Linear Queue Array

Dequeue, Peek and Delete Methods using Linear Queue Array

Time and Space Complexity of Linear Queue using Array

Why Circular Queue?

Circular Queue Operations using Array

Create, Enqueue, isFull and isEmpty Methods in Circular Queue using Array

Dequeue, Peek and Delete Methods in Circular Queue using Array

Time and Space Complexity of Circular Queue using Array

Queue Operations using Linked List

Create, Enqueue and isEmpty Methods in Queue using Linked List

Dequeue, Peek and Delete Methods in Queue using Linked List

Time and Space Complexity of Queue using Linked List

Array vs Linked List Implementation

When to Use/Avoid Queue?
Section 17 – Cracking Stack and Queue Interview Questions (Amazon,Facebook, Apple, Microsoft)

Question 1 – Three in One

Question 2 – Stack Minimum

Question 3 – Stack of Plates

Question 4 – Queue via Stacks

Question 5 – Animal Shelter
Section 18 – Tree / Binary Tree

What is a Tree?

Why Tree?

Tree Terminology

How to create a basic tree in Java?

Binary Tree

Types of Binary Tree

Binary Tree Representation

Create Binary Tree (Linked List)

PreOrder Traversal Binary Tree (Linked List)

InOrder Traversal Binary Tree (Linked List)

PostOrder Traversal Binary Tree (Linked List)

LevelOrder Traversal Binary Tree (Linked List)

Searching for a node in Binary Tree (Linked List)

Inserting a node in Binary Tree (Linked List)

Delete a node from Binary Tree (Linked List)

Delete entire Binary Tree (Linked List)

Create Binary Tree (Array)

Insert a value Binary Tree (Array)

Search for a node in Binary Tree (Array)

PreOrder Traversal Binary Tree (Array)

InOrder Traversal Binary Tree (Array)

PostOrder Traversal Binary Tree (Array)

Level Order Traversal Binary Tree (Array)

Delete a node from Binary Tree (Array)

Entire Binary Tree (Array)

Linked List vs Python List Binary Tree
Section 19 – Binary Search Tree

What is a Binary Search Tree? Why do we need it?

Create a Binary Search Tree

Insert a node to BST

Traverse BST

Search in BST

Delete a node from BST

Delete entire BST

Time and Space complexity of BST
Section 20 – AVL Tree

What is an AVL Tree?

Why AVL Tree?

Common Operations on AVL Trees

Insert a node in AVL (Left Left Condition)

Insert a node in AVL (Left Right Condition)

Insert a node in AVL (Right Right Condition)

Insert a node in AVL (Right Left Condition)

Insert a node in AVL (all together)

Insert a node in AVL (method)

Delete a node from AVL (LL, LR, RR, RL)

Delete a node from AVL (all together)

Delete a node from AVL (method)

Delete entire AVL

Time and Space complexity of AVL Tree
Section 21 – Binary Heap

What is Binary Heap? Why do we need it?

Common operations (Creation, Peek, sizeofheap) on Binary Heap

Insert a node in Binary Heap

Extract a node from Binary Heap

Delete entire Binary Heap

Time and space complexity of Binary Heap
Section 22 – Trie

What is a Trie? Why do we need it?

Common Operations on Trie (Creation)

Insert a string in Trie

Search for a string in Trie

Delete a string from Trie

Practical use of Trie
Section 23 – Hashing

What is Hashing? Why do we need it?

Hashing Terminology

Hash Functions

Types of Collision Resolution Techniques

Hash Table is Full

Pros and Cons of Resolution Techniques

Practical Use of Hashing

Hashing vs Other Data structures
Section 24 – Sort Algorithms

What is Sorting?

Types of Sorting

Sorting Terminologies

Bubble Sort

Selection Sort

Insertion Sort

Bucket Sort

Merge Sort

Quick Sort

Heap Sort

Comparison of Sorting Algorithms
Section 25 – Searching Algorithms

Introduction to Searching Algorithms

Linear Search

Linear Search in Python

Binary Search

Binary Search in Python

Time Complexity of Binary Search
Section 26 – Graph Algorithms

What is a Graph? Why Graph?

Graph Terminology

Types of Graph

Graph Representation

Graph in Java using Adjacency Matrix

Graph in Java using Adjacency List
Section 27 – Graph Traversal

Breadth First Search Algorithm (BFS)

Breadth First Search Algorithm (BFS) in Java – Adjacency Matrix

Breadth First Search Algorithm (BFS) in Java – Adjacency List

Time Complexity of Breadth First Search (BFS) Algorithm

Depth First Search (DFS) Algorithm

Depth First Search (DFS) Algorithm in Java – Adjacency List

Depth First Search (DFS) Algorithm in Java – Adjacency Matrix

Time Complexity of Depth First Search (DFS) Algorithm

BFS Traversal vs DFS Traversal
Section 28 – Topological Sort

What is Topological Sort?

Topological Sort Algorithm

Topological Sort using Adjacency List

Topological Sort using Adjacency Matrix

Time and Space Complexity of Topological Sort
Section 29 – Single Source Shortest Path Problem

SWhat is Single Source Shortest Path Problem?

Breadth First Search (BFS) for Single Source Shortest Path Problem (SSSPP)

BFS for SSSPP in Java using Adjacency List

BFS for SSSPP in Java using Adjacency Matrix

Time and Space Complexity of BFS for SSSPP

Why does BFS not work with Weighted Graph?

Why does DFS not work for SSSP?
Section 30 – Dijkstra’s Algorithm

Dijkstra’s Algorithm for SSSPP

Dijkstra’s Algorithm in Java – 1

Dijkstra’s Algorithm in Java – 2

Dijkstra’s Algorithm with Negative Cycle
Section 31 – Bellman Ford Algorithm

Bellman Ford Algorithm

Bellman Ford Algorithm with negative cycle

Why does Bellman Ford run V1 times?

Bellman Ford in Python

BFS vs Dijkstra vs Bellman Ford
Section 32 – All Pairs Shortest Path Problem

All pairs shortest path problem

Dry run for All pair shortest path
Section 33 – Floyd Warshall

Floyd Warshall Algorithm

Why Floyd Warshall?

Floyd Warshall with negative cycle,

Floyd Warshall in Java,

BFS vs Dijkstra vs Bellman Ford vs Floyd Warshall,
Section 34 – Minimum Spanning Tree

Minimum Spanning Tree,

Disjoint Set,

Disjoint Set in Java,
Section 35 – Kruskal’s and Prim’s Algorithms

Kruskal Algorithm,

Kruskal Algorithm in Python,

Prim’s Algorithm,

Prim’s Algorithm in Python,

Prim’s vs Kruskal
Section 36 – Cracking Graph and Tree Interview Questions (Amazon,Facebook, Apple, Microsoft)
Section 37 – Greedy Algorithms

What is Greedy Algorithm?

Well known Greedy Algorithms

Activity Selection Problem

Activity Selection Problem in Python

Coin Change Problem

Coin Change Problem in Python

Fractional Knapsack Problem

Fractional Knapsack Problem in Python
Section 38 – Divide and Conquer Algorithms

What is a Divide and Conquer Algorithm?

Common Divide and Conquer algorithms

How to solve Fibonacci series using Divide and Conquer approach?

Number Factor

Number Factor in Java

House Robber

House Robber Problem in Java

Convert one string to another

Convert One String to another in Java

Zero One Knapsack problem

Zero One Knapsack problem in Java

Longest Common Sequence Problem

Longest Common Subsequence in Java

Longest Palindromic Subsequence Problem

Longest Palindromic Subsequence in Java

Minimum cost to reach the Last cell problem

Minimum Cost to reach the Last Cell in 2D array using Java

Number of Ways to reach the Last Cell with given Cost

Number of Ways to reach the Last Cell with given Cost in Java
Section 39 – Dynamic Programming

What is Dynamic Programming? (Overlapping property)

Where does the name of DC come from?

Top Down with Memoization

Bottom Up with Tabulation

Top Down vs Bottom Up

Is Merge Sort Dynamic Programming?

Number Factor Problem using Dynamic Programming

Number Factor : Top Down and Bottom Up

House Robber Problem using Dynamic Programming

House Robber : Top Down and Bottom Up

Convert one string to another using Dynamic Programming

Convert String using Bottom Up

Zero One Knapsack using Dynamic Programming

Zero One Knapsack – Top Down

Zero One Knapsack – Bottom Up
Section 40 – CHALLENGING Dynamic Programming Problems

Longest repeated Subsequence Length problem

Longest Common Subsequence Length problem

Longest Common Subsequence problem

Diff Utility

Shortest Common Subsequence problem

Length of Longest Palindromic Subsequence

Subset Sum Problem

Egg Dropping Puzzle

Maximum Length Chain of Pairs
Section 41 – A Recipe for Problem Solving

Introduction

Step 1 – Understand the problem

Step 2 – Examples

Step 3 – Break it Down

Step 4 – Solve or Simplify

Step 5 – Look Back and Refactor
Section 41 – Wild West

1Curriculum WalkthroughVideo lesson
The order of sections has been changed to make things clearer and more understandable  from easier to difficult.

2What is a data structure?Video lesson

3What is an algorithm?Video lesson

4Why are Data Structures and Algorithms important?Video lesson

5Types of Data StructuresVideo lesson

6Types of AlgorithmsVideo lesson

7Lecture NotesText lesson

8MotivationText lesson

9What is Big O?Video lesson

10Big O Notations  (Big O, Big Omega, Big Theta)Video lesson

11Big O  O(1)Video lesson

12Big O  O(N)Video lesson

13Drop ConstantsVideo lesson

14Big O  O(N^2)Video lesson

15Drop Non Dominant TermsVideo lesson

16Big O  O(logN)Video lesson

17Add vs MultiplyVideo lesson

18Space ComplexityVideo lesson

19How to Measure the Code using Big O?Video lesson

20Big O QuizQuiz

21What is an Array?Video lesson

22Types of ArraysVideo lesson

23Arrays in MemoryVideo lesson

24Create an ArrayVideo lesson

25Insertion in ArrayVideo lesson

26Accessing Elements in ArrayVideo lesson

27Array TraversalVideo lesson

28Search for Array ElementVideo lesson

29Delete Array ElementVideo lesson

30Time and Space Complexity of 1D ArraysVideo lesson

31Create Two Dimensional ArrayVideo lesson

32Insertion  Two Dimensional ArrayVideo lesson

33Accessing Two Dimensional Array ElementVideo lesson

34Traverse Two Dimensional ArrayVideo lesson

35Searching Two Dimensional ArrayVideo lesson

36Delete Two Dimensional Array ElementVideo lesson

37Time and Space Complexity of 2D ArraysVideo lesson

38When to Use/Avoid ArraysVideo lesson

39Download ResourcesText lesson

44Middle FunctionQuiz

45Solution to Middle FunctionText lesson

462D ArraysQuiz

47Solution to 2D ArraysText lesson

48Best ScoreQuiz

49Solution to Best ScoreText lesson

50Missing NumberQuiz

51Solution to Missing NumberText lesson

52Duplicate NumberQuiz

53Solution to Duplicate NumberText lesson

54Remove Duplicates from Sorted Array  LeetCode 26Quiz

55Solution to Remove Duplicates from Sorted Array  LeetCode 26Text lesson

56Best Time to Buy and Sell Stock  LeetCode 121Quiz

57Solution to Best Time to Buy and Sell Stock  LeetCode 121Text lesson

58Two Sum  LeetCode 1Quiz

59Solution to Two Sum  LeetCode 1Text lesson

60Finding a Number in an ArrayQuiz

61Solution  Finding a Number in an ArrayVideo lesson

62Max Product of Two IntegersQuiz

63Solution  Max Product of Two IntegersVideo lesson

64IsUnique / Contains Duplicate  LeetCode 217Quiz

65Solution  IsUnique / Contains Duplicate  LeetCode 217Video lesson

66PermutationQuiz

67Solution  PermutationVideo lesson

68Rotate MatrixQuiz

69Rotate Matrix / Image  LeetCode 48Video lesson

70Download ResourcesText lesson

71What is ArrayList?Video lesson

72ArrayList in MemoryVideo lesson

73Creating ArrayListVideo lesson

74Insertion in ArrayListVideo lesson

75Accessing Elements in ArrayListVideo lesson

76Traversal of ArrayListVideo lesson

77Search for an Element in ArrayListVideo lesson

78Delete an Element for ArrayListVideo lesson

79Time and Space Complexity of ArrayListVideo lesson

80Question 1  Time Complexity of Method that returns Sum and Product of ArrayVideo lesson

81Question 2  Time Complexity of Print Pairs MethodVideo lesson

82Question 3  Time Complexity of Print Unordered Pairs MethodVideo lesson

83Question 4  Find Time Complexity for Given MethodVideo lesson

84Question 5  Find Time Complexity for Given MethodVideo lesson

85Question 6  Time Complexity of Reverse Array FunctionVideo lesson

86Question 7  Equivalent to O(N)Video lesson
External Links May Contain Affiliate Links read more