DSA with Java — Placement Preparation
Eighty-six worked problems, from array CRUD to graph traversal
What you'll learn
- Solve array, matrix and linked-list problems without reaching for a hint
- Read a recursive solution off the call stack rather than by trial and error
- Recognise when a problem is backtracking and when it is dynamic programming
- Convert a working recursion into a memoised and then a tabulated solution
- Traverse a binary tree in every order an interview asks for, and rebuild one from its traversals
- Represent and traverse a graph, and say why you chose the representation
- State the time and space complexity of your own solution, correctly
- Level
- Beginner
- Duration
- 86 lessons (about 16 weeks)
- Material
- 29h 11m
- Lessons
- 86
- Language
- English
- Access
- 365 days
About this course
The data structures and algorithms a placement interview actually asks about, worked in full in Java — arrays, matrices, linked lists, recursion, backtracking, dynamic programming, trees and graphs.
This is a problem-first course. Every topic opens with the structure, then spends most of its time on the problems interviewers reuse — Two Sum, Trapping Rain Water, Spiral Matrix, Reverse a Linked List, N-Queens, Sudoku, Edit Distance, Vertical Order Traversal — each solved on screen in Java with the complexity stated out loud, because stating it is half of what is being marked. Recursion gets twenty lessons on its own, read off the call stack rather than guessed at, because everything from backtracking to dynamic programming to tree traversal is built on it. No prior DSA background is assumed; it starts at array CRUD.
Syllabus
9 modules · 86 lessons · 29h 11m · 1 free to preview
Arrays
- Learn Array CRUD Operations
- Array vs ArrayList
- HashMap
- Max Element and Second Max Element in an Array
- Two Sum Problem | LeetCode 1
- Rotate Array | Once, K-Times & Optimized Approach
- Numbers Smaller Than Current Number | All Approaches | LeetCode 1365
- Max Sum of K Consecutive Elements | Sliding Window Technique
- Bar Chart Pattern in Java Using Arrays
- Check Sorted Array & Reverse Array | Two Pointer Approach
- Array Addition & Subarray Product Less Than K | LeetCode 713
- N-bonacci Series & Count Distinct in Window | Sliding Window
- Gas Station Problem | LeetCode 134
- Best Time to Buy and Sell Stock + Pre-Computation | LeetCode 121
- Trapping Rain Water | LeetCode 42 | Pre-Computation Technique
2D arrays and matrices
- Introduction to 2D Arrays
- 2D Array Traversal, Toeplitz Matrix & Transpose | LeetCode 766
- Lucky Number in a Matrix
- Snake Pattern & Spiral Matrix | LeetCode 54
- The K Weakest Rows in a Matrix | LeetCode 1337
- Pascal's Triangle | LeetCode 118 | 2D ArrayList Explained
Linked lists
- Introduction to Linked List | Build Your Own Linked List
- Generic Linked List | Build a Linked List for Any Data Type
- Linked List CRUD Operations | Insert at Beginning, End & Mid
- Linked List Deletion | Delete from Beginning & Any Position
- Find Middle of Linked List | LeetCode 876
- Kth Node from End of Linked List | LeetCode 19
- Reverse a Linked List | LeetCode 206
- Split Circular Linked List into Two Halves
- Clone Linked List with Random Pointer | LeetCode 138
Recursion
- Recursion Explained with the Call Stack
- Factorial Using Recursion
- Sum of Digits Using Recursion
- Power Compute Using Loop and Recursion
- Reverse a String Using Recursion
- Check Sorted Array & Search Element Using Recursion
- Pattern Programs Using Recursion
- Generate All Subsequences of a String
- Generate Subsequences Using Recursion
- String Permutations Using Recursion
- Multi-Branch Recursion & Fibonacci Series
- Fibonacci Series Using Recursion
- Dice Game Using Recursion
- Climbing Stairs Using Recursion | LeetCode 70
- Maze Path Problem Using Recursion
- Print All Subsequences Using Recursion
- Print All Permutations Using Recursion
- Dice Count Without ArrayList Using Recursion
- Tower of Hanoi Recursion: Interview Question Breakdown
- Josephus Problem Using Recursion
Backtracking
- Introduction to Backtracking Using Recursion
- N-Queens Problem Using Backtracking | Part 1
- N-Queens Problem Solution Using Backtracking | Part 2
- Generate Parentheses Using Backtracking | LeetCode 22
- Word Search Using Backtracking | LeetCode 79
- Letter Combinations of a Phone Number | LeetCode 17
- Sudoku Solver Using Backtracking | LeetCode 37
- Subset Sum Problem Using Recursion & Backtracking
- Rat in a Maze Using Recursion & Backtracking
Dynamic programming
- Dynamic Programming Introduction
- Fibonacci Series Using Dynamic Programming
- Dice Count Using Dynamic Programming
- Longest Common Subsequence Using DP | LeetCode 1143
- Minimum Cost Path Using Dynamic Programming
- Subset Sum Problem Using Dynamic Programming
- Edit Distance Using Dynamic Programming | LeetCode 72
Trees
- Height of a Tree | Trees in Java
- Count Nodes in a Binary Tree
- Print Nodes at K Distance from Root
- Print Left View of a Binary Tree | Recursive Approach
- Print Left View of a Binary Tree | Iterative Approach
- Root Equals Sum of Children | LeetCode 2236
- Construct Sum Tree of a Binary Tree
- Spiral Order Traversal of a Binary Tree Using Two Stacks
- Construct Binary Tree from Inorder and Postorder Traversal
- Vertical Order Traversal of a Binary Tree
Graphs
- Introduction to the Graph Data Structure
- Graph Representation Using Vertices and Edges
- Directed vs Undirected Graph
- Graph Terminologies | Degree, Walk, Path & Cycles
- Graph Representations: Adjacency Matrix & Adjacency List
- Graph Representation Using an Adjacency List
- Graph Traversal
- Graph Traversal Using BFS | Breadth First Search
- Graph Traversal Using BFS | Breadth First Search Part 2
Your instructor
Full-stack engineer, and the person who built this platform
Fifteen years building and running production systems, most of them in Java and JavaScript. Teaches the way he works: start with something that runs, then make it correct, then make it fast.
What you'll get
- Free first lessonThe opening lesson of the course is public — read it before you buy.
- Lifetime accessOne purchase, a year of access, and every future update included.
- Every lesson on videoRecorded, chaptered and rewatchable at your own speed.
- Certificate on completionIssued automatically and verifiable by a public link.
Tools you'll use
- JavaEvery solution written and run in Java 17
- LeetCodeThe exact numbered problems interviewers reuse
- IntelliJ IDEADebugger-first — watch the call stack, do not guess at it
- Big-O analysisJustify a complexity out loud, which is what is actually marked
Before you start
- Core Java — classes, arrays, collections, generics
- No prior DSA background; the series starts from array CRUD
- About ninety minutes a day if you are following the daily pace
Who this is for
- Students preparing for campus and off-campus placements
- Working developers preparing for interviews after a few years away from DSA
- Anyone who can write code but freezes at a whiteboard