Last Updated on August 5, 2023 by GeeksGod
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 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!
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 StructuresTypes of Algorithms
Section 2 – Recursion
What is Recursion?Why do we need recursion?How Recursion works?Recursive vs Iterative SolutionsWhen 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 DigitsQuestion 2 – PowerQuestion 3 – Greatest Common DivisorQuestion 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 ComplexityBig O, Big Theta and Big OmegaTime complexity examplesSpace ComplexityDrop the Constants and the non dominant termsAdd vs MultiplyHow 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 SumPrint PairsPrint Unordered PairsPrint Unordered Pairs 2 ArraysPrint Unordered Pairs 2 Arrays 100000 UnitsReverseO(N) EquivalentsFactorial ComplexityFibonacci ComplexityPowers of 2
Section 7 – Arrays
What is an Array?Types of ArrayArrays in MemoryCreate an ArrayInsertion OperationTraversal OperationAccessing an element of ArraySearching for an element in ArrayDeleting an element from ArrayTime and Space complexity of One Dimensional ArrayOne Dimensional Array PracticeCreate Two Dimensional ArrayInsertion – Two Dimensional ArrayAccessing an element of Two Dimensional ArrayTraversal – Two Dimensional ArraySearching for an element in Two Dimensional ArrayDeletion – Two Dimensional ArrayTime and Space complexity of Two Dimensional ArrayWhen to use/avoid array
Section 8 – Cracking Array Interview Questions (Amazon, Facebook, Apple and Microsoft)
Question 1 – Missing NumberQuestion 2 – PairsQuestion 3 – Finding a number in an ArrayQuestion 4 – Max product of two intQuestion 5 – Is UniqueQuestion 6 – PermutationQuestion 7 – Rotate Matrix
Section 9 – CHALLENGING Array Problems (Exercises)
Middle Function2D ListsBest ScoreMissing NumberDuplicate NumberPairs
Section 10 – Linked List
What is a Linked List?Linked List vs ArraysTypes of Linked ListLinked List in the MemoryCreation of Singly Linked ListInsertion in Singly Linked List in MemoryInsertion in Singly Linked List AlgorithmInsertion Method in Singly Linked ListTraversal of Singly Linked ListSearch for a value in Single Linked ListDeletion of node from Singly Linked ListDeletion Method in Singly Linked ListDeletion of entire Singly Linked ListTime and Space Complexity of Singly Linked List
Section 11 – Circular Singly Linked List
Creation of Circular Singly Linked ListInsertion in Circular Singly Linked ListInsertion Algorithm in Circular Singly Linked ListInsertion method in Circular Singly Linked ListTraversal of Circular Singly Linked ListSearching a node in Circular Singly Linked ListDeletion of a node from Circular Singly Linked ListDeletion Algorithm in Circular Singly Linked ListMethod in Circular Singly Linked ListDeletion of entire Circular Singly Linked ListTime and Space Complexity of Circular Singly Linked List
Section 12 – Doubly Linked List
Creation of Doubly Linked ListInsertion in Doubly Linked ListInsertion Algorithm in Doubly Linked ListInsertion Method in Doubly Linked ListTraversal of Doubly Linked ListReverse Traversal of Doubly Linked ListSearching for a node in Doubly Linked ListDeletion of a node in Doubly Linked ListDeletion Algorithm in Doubly Linked ListDeletion Method in Doubly Linked ListDeletion of entire Doubly Linked ListTime and Space Complexity of Doubly Linked List
Section 13 – Circular Doubly Linked List
Creation of Circular Doubly Linked ListInsertion in Circular Doubly Linked ListInsertion Algorithm in Circular Doubly Linked ListInsertion Method in Circular Doubly Linked ListTraversal of Circular Doubly Linked ListReverse Traversal of Circular Doubly Linked ListSearch for a node in Circular Doubly Linked ListDelete a node from Circular Doubly Linked ListDeletion Algorithm in Circular Doubly Linked ListDeletion Method in Circular Doubly Linked ListEntire Circular Doubly Linked ListTime and Space Complexity of Circular Doubly Linked ListTime Complexity of Linked List vs Arrays
Section 14 – Cracking Linked List Interview Questions (Amazon, Facebook, Apple and Microsoft)
Linked List ClassQuestion 1 – Remove DupsQuestion 2 – Return Kth to LastQuestion 3 – PartitionQuestion 4 – Sum Linked ListsQuestion 5 – Intersection
Section 15 – Stack
What is a Stack?What and Why of Stack?Stack OperationsStack using Array vs Linked ListStack Operations using Array (Create, isEmpty, isFull)Stack Operations using Array (Push, Pop, Peek, Delete)Time and Space Complexity of Stack using ArrayStack Operations using Linked ListStack methods – Push , Pop, Peek, Delete and isEmpty using Linked ListTime and Space Complexity of Stack using Linked ListWhen to Use/Avoid StackStack Quiz
Section 16 – Queue
What is a Queue?Linear Queue Operations using ArrayCreate, isFull, isEmpty and enQueue methods using Linear Queue ArrayDequeue, Peek and Delete Methods using Linear Queue ArrayTime and Space Complexity of Linear Queue using ArrayWhy Circular Queue?Circular Queue Operations using ArrayCreate, Enqueue, isFull and isEmpty Methods in Circular Queue using ArrayDequeue, Peek and Delete Methods in Circular Queue using ArrayTime and Space Complexity of Circular Queue using ArrayQueue Operations using Linked ListCreate, Enqueue and isEmpty Methods in Queue using Linked ListDequeue, Peek and Delete Methods in Queue using Linked ListTime and Space Complexity of Queue using Linked ListArray vs Linked List ImplementationWhen to Use/Avoid Queue?
Section 17 – Cracking Stack and Queue Interview Questions (Amazon,Facebook, Apple, Microsoft)
Question 1 – Three in OneQuestion 2 – Stack MinimumQuestion 3 – Stack of PlatesQuestion 4 – Queue via StacksQuestion 5 – Animal Shelter
Section 18 – Tree / Binary Tree
What is a Tree?Why Tree?Tree TerminologyHow to create a basic tree in Java?Binary TreeTypes of Binary TreeBinary Tree RepresentationCreate 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 TreeInsert a node to BSTTraverse BSTSearch in BSTDelete a node from BSTDelete entire BSTTime and Space complexity of BST
Section 20 – AVL Tree
What is an AVL Tree?Why AVL Tree?Common Operations on AVL TreesInsert 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 AVLTime 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 HeapInsert a node in Binary HeapExtract a node from Binary HeapDelete entire Binary HeapTime 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 TrieSearch for a string in TrieDelete a string from TriePractical use of Trie
Section 23 – Hashing
What is Hashing? Why do we need it?Hashing TerminologyHash FunctionsTypes of Collision Resolution TechniquesHash Table is FullPros and Cons of Resolution TechniquesPractical Use of HashingHashing vs Other Data structures
Section 24 – Sort Algorithms
What is Sorting?Types of SortingSorting TerminologiesBubble SortSelection SortInsertion SortBucket SortMerge SortQuick SortHeap SortComparison of Sorting Algorithms
Section 25 – Searching Algorithms
Introduction to Searching AlgorithmsLinear SearchLinear Search in PythonBinary SearchBinary Search in PythonTime Complexity of Binary Search
Section 26 – Graph Algorithms
What is a Graph? Why Graph?Graph TerminologyTypes of GraphGraph RepresentationGraph in Java using Adjacency MatrixGraph in Java using Adjacency List
Section 27 – Graph Traversal
Breadth First Search Algorithm (BFS)Breadth First Search Algorithm (BFS) in Java – Adjacency MatrixBreadth First Search Algorithm (BFS) in Java – Adjacency ListTime Complexity of Breadth First Search (BFS) AlgorithmDepth First Search (DFS) AlgorithmDepth First Search (DFS) Algorithm in Java – Adjacency ListDepth First Search (DFS) Algorithm in Java – Adjacency MatrixTime Complexity of Depth First Search (DFS) AlgorithmBFS Traversal vs DFS Traversal
Section 28 – Topological Sort
What is Topological Sort?Topological Sort AlgorithmTopological Sort using Adjacency ListTopological Sort using Adjacency MatrixTime 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 ListBFS for SSSPP in Java using Adjacency MatrixTime and Space Complexity of BFS for SSSPPWhy does BFS not work with Weighted Graph?Why does DFS not work for SSSP?
Section 30 – Dijkstra’s Algorithm
Dijkstra’s Algorithm for SSSPPDijkstra’s Algorithm in Java – 1Dijkstra’s Algorithm in Java – 2Dijkstra’s Algorithm with Negative Cycle
Section 31 – Bellman Ford Algorithm
Bellman Ford AlgorithmBellman Ford Algorithm with negative cycleWhy does Bellman Ford run V-1 times?Bellman Ford in PythonBFS vs Dijkstra vs Bellman Ford
Section 32 – All Pairs Shortest Path Problem
All pairs shortest path problemDry run for All pair shortest path
Section 33 – Floyd Warshall
Floyd Warshall AlgorithmWhy 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 AlgorithmsActivity Selection ProblemActivity Selection Problem in PythonCoin Change ProblemCoin Change Problem in PythonFractional Knapsack ProblemFractional Knapsack Problem in Python
Section 38 – Divide and Conquer Algorithms
What is a Divide and Conquer Algorithm?Common Divide and Conquer algorithmsHow to solve Fibonacci series using Divide and Conquer approach?Number FactorNumber Factor in JavaHouse RobberHouse Robber Problem in JavaConvert one string to anotherConvert One String to another in JavaZero One Knapsack problemZero One Knapsack problem in JavaLongest Common Sequence ProblemLongest Common Subsequence in JavaLongest Palindromic Subsequence ProblemLongest Palindromic Subsequence in JavaMinimum cost to reach the Last cell problemMinimum Cost to reach the Last Cell in 2D array using JavaNumber of Ways to reach the Last Cell with given CostNumber 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 MemoizationBottom Up with TabulationTop Down vs Bottom UpIs Merge Sort Dynamic Programming?Number Factor Problem using Dynamic ProgrammingNumber Factor : Top Down and Bottom UpHouse Robber Problem using Dynamic ProgrammingHouse Robber : Top Down and Bottom UpConvert one string to another using Dynamic ProgrammingConvert String using Bottom UpZero One Knapsack using Dynamic ProgrammingZero One Knapsack – Top DownZero One Knapsack – Bottom Up
Section 40 – CHALLENGING Dynamic Programming Problems
Longest repeated Subsequence Length problemLongest Common Subsequence Length problemLongest Common Subsequence problemDiff UtilityShortest Common Subsequence problemLength of Longest Palindromic SubsequenceSubset Sum ProblemEgg Dropping PuzzleMaximum Length Chain of Pairs
Section 41 – A Recipe for Problem Solving
IntroductionStep 1 – Understand the problemStep 2 – ExamplesStep 3 – Break it DownStep 4 – Solve or SimplifyStep 5 – Look Back and Refactor
Section 41 – Wild West