Data Structures And Algorithms With Java
Published 5/2025
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 17.39 GB | Duration: 43h 22m
Published 5/2025
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 17.39 GB | Duration: 43h 22m
Master Java Programming & Data Structures
What you'll learn
Core Java Programming – Syntax, data types, control structures, functions, and exception handling.
Object-Oriented Programming (OOP) – Concepts like classes, objects, inheritance, polymorphism, abstraction, and encapsulation in Java.
Design Principles – Industry-standard principles such as SOLID, DRY, KISS, and YAGNI to write clean, maintainable code.
Design Patterns & Machine Coding – Introduction to common design patterns and how to approach machine coding rounds in interviews.
Linear Data Structures – Implementation and use cases of Arrays, ArrayLists, LinkedLists, Stacks, Queues, and HashMaps in Java.
Non-Linear Data Structures – Understanding Trees (BST, AVL), Heaps (Min/Max), Tries, and Graphs along with traversal algorithms like DFS and BFS.
Bit Manipulation – In-depth understanding of how bits work, including binary-decimal conversions and low-level operations.
Space and Time Complexity – Learn how to analyze the efficiency of your code using Big-O notation.
Requirements
Basic familiarity with programming concepts (helpful but not mandatory)
Description
Welcome to the ultimate Java programming course by Piyush Garg — designed for beginners, intermediate learners, and seasoned developers who want to master Java and data structures from the ground up.In this comprehensive course, we begin with the core fundamentals of Java, covering syntax, object-oriented programming (OOP), and essential design principles like SOLID, DRY, and KISS. Whether you're new to programming or a college student aiming to strengthen your Java skills, this course is your go-to guide. We'll progress gradually, ensuring crystal-clear understanding of each topic.Java, being the most popular programming language, powers over 90% of Fortune 500 companies, Android applications, and financial systems. Its strong support for OOP makes it the ideal choice for aspiring software engineers.You’ll also learn to implement and work with both linear and non-linear data structures. In the linear section, we cover Arrays, ArrayLists, LinkedLists, Stacks, Queues, and HashMaps — the building blocks of any efficient program. Then, we dive into advanced topics like Trees (BST, AVL), Heaps (Min/Max), Tries, and Graphs, including key traversal algorithms like DFS and BFS.This course is packed with coding challenges to help you solidify concepts and prepare for technical interviews and machine coding rounds.By the end, you’ll be confident in Java and equipped to master Data Structures and Algorithms with ease.
Overview
Section 1: Introduction
Lecture 1 How Java Works
Lecture 2 Setting up Java and Intellij Idea
Section 2: Basics
Lecture 3 Hello World
Lecture 4 Data Types in Java
Lecture 5 Non Primitive Data Types
Lecture 6 Variables and Constants in Java
Lecture 7 Basic Athematic Operators
Lecture 8 Taking Input from User
Lecture 9 Conditional Statements in Java
Lecture 10 Switch Statements in Java
Lecture 11 Loops in Java
Lecture 12 What are Arrays?
Lecture 13 Arrays in Java
Lecture 14 Arrays in Java Part 2
Lecture 15 2D Arrays in Java
Lecture 16 Dynamic Arrays using Lists
Lecture 17 Exception and Exception Handling
Lecture 18 Array Data Structure
Lecture 19 HashMap Data Structure
Lecture 20 Set Data Structure
Section 3: Object Oriented Programming with Java
Lecture 21 Introduction to OOPS
Lecture 22 Benefits of OOPS
Lecture 23 Methods and this keyoword
Lecture 24 Constructor
Lecture 25 Getters and Setters
Lecture 26 Static Keyword
Lecture 27 Pillars of OOPS
Lecture 28 Pillars of OOPS Part 2
Lecture 29 Abstract Classes and Methods
Lecture 30 Interfaces
Lecture 31 OOPS Practice Question - 1
Section 4: Design Principles and Patterns
Lecture 32 DRY
Lecture 33 KISS and YAGNI
Lecture 34 S.O.L.I.D Principles
Lecture 35 Singleton Design Pattern
Lecture 36 Factory Design Pattern
Lecture 37 Builder Design Pattern
Lecture 38 Adapter Design Pattern
Lecture 39 Bridge Design Pattern
Lecture 40 Proxy Design Pattern
Lecture 41 Command Design Pattern
Lecture 42 Observer Design Pattern
Lecture 43 Iterator Design Pattern
Section 5: Data Structure and Algorithms
Lecture 44 Space and Time Complexity
Lecture 45 Constant Space Time Complexity
Lecture 46 Linear Space Time Complexity
Lecture 47 What is DSA?
Lecture 48 Logarithmic Space Time Complexity
Lecture 49 Quadratic Space Time Complexity
Lecture 50 Quick Recap
Section 6: Fundamentals
Lecture 51 Basics of Binary and Decimal Number System
Lecture 52 Bitwise Operators
Lecture 53 Left Shift and Right Shift
Lecture 54 Counting Bits
Lecture 55 Convert Binary to Decimal
Lecture 56 Convert Decimal to Binary
Lecture 57 Reverse and Integer
Lecture 58 Power of two
Lecture 59 Compliment Base 10 Integer
Section 7: Basic Maths
Lecture 60 Prime Number
Lecture 61 Sieve of Eratosthenes
Lecture 62 Factorial of Number
Section 8: Basics of Recursion
Lecture 63 Introduction to Recursion
Lecture 64 X to the Power n
Section 9: Linear Data Structures
Lecture 65 Introduction
Lecture 66 Getting Started with Arrays
Lecture 67 Understanding Memory Allocation
Lecture 68 Dynamic Arrays
Lecture 69 Create Array from Scratch
Lecture 70 Find Index using Linear Search
Lecture 71 Removing Elements
Lecture 72 Min and Max in Array
Lecture 73 Reverse an Array
Lecture 74 Adding support to Dynamic Size Arrays
Section 10: Problem Solving - Arrays
Lecture 75 Single Number
Lecture 76 Two Sum
Lecture 77 Sort Colors
Lecture 78 Merge Sorted Arrays
Lecture 79 Move Zeros
Lecture 80 Intersect Arrays
Lecture 81 Check if Array is Sorted and Rotated
Section 11: Linked Lists
Lecture 82 Introduction
Lecture 83 Understanding Memory Allocation
Lecture 84 Working with Built-In LinkedList
Lecture 85 Types of LinkedList
Lecture 86 Creating LinkedList from Scratch
Lecture 87 Traversing LinkedList
Lecture 88 Reverse LinkedList
Lecture 89 Delete Node from Beginning
Lecture 90 Delete Node From End
Lecture 91 Kth Node From End
Lecture 92 Traversing Linked List
Lecture 93 Reverse Linked List
Section 12: Problem Solving - LinkedList
Lecture 94 Swap Pairs
Lecture 95 Reverse in K groups
Lecture 96 Cyclic Detection
Lecture 97 Find Middle of LinkedList
Lecture 98 Detect & Remove Loop
Lecture 99 Remove Duplicates
Section 13: Stacks
Lecture 100 Introduction
Lecture 101 Working with Stack Class
Lecture 102 Creating Own Stack
Lecture 103 Remove Elements from Top
Lecture 104 Peek Elements
Lecture 105 Stack Overflow
Lecture 106 Stack Underflow
Lecture 107 Creating Stack using LinkedList
Section 14: Problem Solving Stacks
Lecture 108 Two Stacks
Lecture 109 Reverse Strings
Lecture 110 Valid Parentheses
Lecture 111 Insert An Element At its bottom
Lecture 112 Reverse Stack
Lecture 113 Sort Stack
Lecture 114 Redundant Brackets
Lecture 115 Celebrity Problem
Lecture 116 Min Stack O(n)
Lecture 117 Min Stack O(1)
Section 15: Queues
Lecture 118 Introduction
Lecture 119 Working with Queues in Java
Lecture 120 Reverse Queue
Lecture 121 Creating Own Queue
Lecture 122 Dequeue from Queue
Lecture 123 Bug in Queue
Lecture 124 Fixing Bug in Circular Arrays
Lecture 125 Building Queue using Stacks
Lecture 126 Priority Queues
Lecture 127 Build Priority Queue
Section 16: Queue Part - 2
Lecture 128 Design Circular Queue
Lecture 129 Design Double Ended Queue
Lecture 130 Reverse Queue using Recursion
Lecture 131 First Negative Integer in window size K
Lecture 132 Reverse First K elements of Queue
Lecture 133 Interleave the first half of queue with second one
Section 17: HashMaps
Lecture 134 Introduction
Lecture 135 HashMap Java
Lecture 136 Non Repeated Char
Lecture 137 First Repeated Char
Lecture 138 Hash Function
Lecture 139 Open Addressing
Lecture 140 Double Hashing
Lecture 141 Building Own HashMap
Lecture 142 Chaining
Lecture 143 Getting Data
Lecture 144 Quadratic Probing
Lecture 145 Remove Data
Section 18: Non Linear Data Structures
Lecture 146 Introduction
Section 19: Binary Trees
Lecture 147 Introduction
Lecture 148 Understanding Binary and Binary Search Trees
Lecture 149 Building Binary Search Tree
Lecture 150 Travelling Nodes
Lecture 151 Find Element in Tree
Lecture 152 Tree Traversals
Lecture 153 Pre-Order
Lecture 154 In-Order
Lecture 155 Post Order
Lecture 156 Depth and Height
Lecture 157 Minimum Value in Tree
Lecture 158 Equality Checking
Lecture 159 Validating Binary Tree
Lecture 160 Nodes at K distance
Lecture 161 Level Order Traverasal
Section 20: Mastering Binary Trees
Lecture 162 Diameter
Lecture 163 Balanced or Not
Lecture 164 Sum Tree or Not
Lecture 165 Zig Zag Traversal
Lecture 166 Boundary Traversal
Lecture 167 Vertical Order Traversal
Lecture 168 Top View
Lecture 169 Bottom View
Lecture 170 Right View
Lecture 171 Diagonal Traversal
Lecture 172 Sum of nodes of longest path
Lecture 173 LCA of Binary Tree
Lecture 174 Minimum Time to Burn Tree
Lecture 175 Morris Traversal
Lecture 176 Flatten Binary Tree
Section 21: Binary Search Trees
Lecture 177 In-order Predecessor and Succesor
Lecture 178 Kth Smallest/Largest in BST
Lecture 179 LCA in BST
Lecture 180 Normal BST to Balanced
Lecture 181 Merge Two Binary Trees
Lecture 182 Largest BST in Binary Tree
Section 22: AVL Trees
Lecture 183 Introduction
Lecture 184 Understanding Rotations
Lecture 185 LeftRight and RightLeft Rotations
Lecture 186 Creating an AVL Tree from Scratch
Lecture 187 Detecting Imbalanced Node
Lecture 188 Detecting Rotations - 1
Lecture 189 Detecting Rotations - 2
Lecture 190 Implementing Left and Right Rotations
Section 23: Heaps
Lecture 191 Introduction
Lecture 192 Heap Insert Logic
Lecture 193 Creating Heap from Scratch
Lecture 194 Removing Element Logic
Lecture 195 Heapify
Lecture 196 K-th Smallest Element
Lecture 197 Check if Binary Tree is a Valid Max Heap
Lecture 198 Smallest Range in K Lists
Section 24: Tries
Lecture 199 Introduction
Lecture 200 Building TRIE from Scratch
Lecture 201 Autocomplete using TRIE
Lecture 202 Removing Elements from TRIE
Lecture 203 Longest Common Prefix
Section 25: Graphs
Lecture 204 Introduction
Lecture 205 Adjacency Matrix and Adjacency List
Lecture 206 Building Graph from Scratch
Lecture 207 Traversal - Breadth First Search
Lecture 208 Traversal - Depth First Search
Lecture 209 Cyclic Detection in Graph
Lecture 210 Topological Sort
Lecture 211 Kahn's Algorithm
Lecture 212 Refactoring Graphs to OOPS Style
Lecture 213 Building Directed Weighted Graph
Lecture 214 Shortest Path Algorithm
Lecture 215 Shortest Path Algorithm - Code
Section 26: Undirected Graphs
Lecture 216 Introduction
Lecture 217 Cyclic Detection
Lecture 218 Dijkstra's Algorithm
Lecture 219 Coding Dijkstra's Algorithm
Lecture 220 Minimum Spanning Tree
Lecture 221 Prim's Algorithm
Lecture 222 Prim's Algorithm Code
Section 27: Algorithms
Lecture 223 Recursion
Lecture 224 Recursion Memory Stack
Lecture 225 Fibonacci Series
Lecture 226 Climb Stairs
Lecture 227 Say Digits
Lecture 228 Reverse Strings
Lecture 229 Check for Pallindrome
Section 28: Mastering Recursion - Part 2
Lecture 230 Subset / Subsequences of String
Lecture 231 Phone Keypad Problem
Lecture 232 Permutation of String
Section 29: Sorting Algorithms
Lecture 233 Bubble Sort
Lecture 234 Selection Sort
Lecture 235 Insertion Sort
Lecture 236 Merge Sort
Lecture 237 Quick Sort
Section 30: Searching Algorithms
Lecture 238 Linear Search
Lecture 239 Binary Search
Lecture 240 Binary Search Recursive
Lecture 241 Exponential Search
Beginners who want to start programming and are looking for a structured, beginner-friendly introduction to Java and core programming concepts.,College and university students studying computer science or related fields who want to build a solid foundation in Java and data structures.,Aspiring software engineers preparing for internships, job interviews, and machine coding rounds at top tech companies.,Java developers looking to refresh or deepen their understanding of core concepts, OOP, and data structures.,Competitive programming enthusiasts who want to improve their grasp of Java's implementation of complex data structures.,Professionals preparing for technical interviews who need a strong revision of linear and non-linear data structures using Java.