Java Data Structures and Algorithms Masterclass

Get a Free Week of Skillshare

100%OFF Coupon code for Java Data Structures and Algorithms Masterclass Udemy Course. This is an exclusive discount coupon from the course instructor, it will be active for few days. Check ENROLL NOW button to get a maximum discount. We manually verified coupon code on September 26th, 2023 .

What you’ll learn

  • Learn, implement, and use different Data Structures
  • Learn, implement and use different Algorithms
  • Become a better developer by mastering computer science fundamentals
  • Learn everything you need to ace difficult coding interviews
  • Cracking the Coding Interview with 100+ questions with explanations
  • Time and Space Complexity of Data Structures and Algorithms
  • Recursion
  • Big O
  • Dynamic Programming
  • Divide and Conquer Algorithms
  • Graph Algorithms
  • Greedy Algorithms 

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 V-1 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

Who this course is for:

  • Anybody interested in learning more about data structures and algorithms or the technical interview process!
  • Self-taught programmers who have a basic knowledge in Java and want to be professional in Data Structure and Algorithm and begin interviewing in tech positions!
  • Students currently studying computer science and want supplementary material on Data Structure and Algorithm and interview preparation for after graduation!
  • Professional programmers who need practice for upcoming coding interviews.

Udemy Course Coupons to check 

Deal Score-1
Disclosure: This post may contain affiliate links and we may get small commission if you make a purchase. Read more about Affiliate disclosure here.

Gain access to over 11,000+ courses for just $16.58 [₹850] per month

Choose between monthly or annual billing cycles, with the freedom to cancel at any time.

The future belongs to learners. Udemy online courses as low as $13.99

New customer offer! Top courses from $14.99 when you first visit Udemy

Gain the skills you need to reach your next career milestone for as little as $11.99

Course Coupon Club
Logo
Follow us on Telegram Join us on FB