Indian Placement Prep - Java and DSA
Your personalDSA guide.
No fluff. Just the sheets, tricks, and problems that actually come up in placements. I work in Java and follow Striver, so this guide reflects that.
7 DSA Sheets
14+ Companies
15 Problems
Java Focused
DSA Sheets
All important sheets in one place
Sheet 01
Striver's A2Z DSA Sheet
Top Pick - Best for Interviews
I follow Striver closely. This is the one I value most. Start here if you are serious about placements.
Open Sheet
Sheet 02
Love Babbar 450 Sheet
Quick Revision
Good for revising fast. 450 well picked problems that cover all the main topics.
Open Sheet
LeetCode Style Practice
Best if you are targeting FAANG. Has video explanations for every problem.
Open Sheet
Good Alternative
Nice topic wise structure. A solid alternative if you want something different from Babbar.
Open Sheet
Sheet 05
Apna College 375 Sheet
Beginner to Intermediate
Good if you are just starting out. Covers basics well and builds up gradually.
Open Sheet
Arsh
Sheet 06
Arsh Goyal Sheet (45-60 Days)
45 to 60 Day Plan
Tight plan for fast preparation. Good if placement season is close and you need structure.
Open Sheet
Algo
Sheet 07
AlgoPrep 151 Problems
Targeted Practice
151 problems selected carefully. Short and focused. Good as a final revision list.
Open Sheet
Target Companies
Know the company, know the test
Mass Recruiting Companies
Cognizant
GenC / GenC Next
Dream Companies (Product Based)
Top 10 Must Know Concepts
Master these and you can handle most interview questions
01
Recursion
Breaking a problem into smaller sub-problems with a base condition. Comes up in 80% of interviews.
02
Sliding Window
Solving subarray problems by moving a window across the array. Very common in array questions.
03
Reverse, substring, anagram check. A basic requirement. Asked in almost every test round.
04
BFS
Layer by layer traversal of a graph. Needed for shortest path and level order problems.
05
DFS
Deep traversal of a graph or tree. Used for connected components and path problems.
06
Dynamic Programming
Cache results of recursive calls so you do not repeat work. Memoisation and tabulation are the two ways.
07
Greedy
Pick the best local option at each step. Works when local best leads to global best.
08
Two Pointers
Use two indexes on a sorted array. Reduces brute force O(n squared) to O(n).
09
Backtracking
Try a solution, if it fails undo and try something else. For permutations, subsets, N-Queens.
10
Binary Search
Halve your search space each step on a sorted input. O(log n). Very commonly tested.
15 Must-Solve Problems
These exact problems or their variants keep showing up in placement rounds
Always Working Tricks
See the input, know the technique. Spot the keyword, pick the algorithm.
If you see this input, try this technique
If input array is
Sorted
BinarySearch TwoPointers
If asked for all
Permutations or Subsets
Backtracking
If given a
Linked List
TwoPointers
If recursion is
Not Allowed
Stack
If must solve
In-place
SwapValues MultiPointer
If max or min
Subarray or Subset
DP
If top or least
K Items
Heap QuickSelect
If asked for
Common Strings
Map Trie
Otherwise O(1) space
Map or Set
O(n) time O(n) space
Otherwise O(n log n)
Sort the Input
O(n log n) O(1) space
Keywords in the problem that hint at which algorithm to use
Greedy
"minimum number of operations" "choose best option at each step"
Dynamic Programming
"maximum sum" "minimum cost" "number of ways" "subsequence"
Sliding Window
"longest substring" "subarray with..."
Binary Search
"kth smallest" "search in sorted" "minimize the maximum"
Graph Algorithms
"network" "connections" "paths"
How to approach any DSA question
1
Read the constraints. Figure out if the expected solution is O(n), O(n log n), or O(1).
2
Look for keywords that point to a known pattern (see the table above).
3
See if this reduces to a known template you have already solved before.
4
Break it into smaller parts and check your logic against the sample test cases.
5
Start with brute force. Get something working first. Then optimise step by step.
6
Check edge cases like empty input, single element, all negatives, and large values.
Emergency Tips - when you are stuck
If everything fails, try HashMap. It works more often than you think.
Start with brute force first. Get something that works, then make it faster.
If brute force is O(n squared), think about how to get O(n log n) or O(n).
Draw the problem on paper. Visualise what is happening step by step.
Trace through your code manually with a sample input before submitting.
DSA Roadmap
What to learn and in what order
Recommended order
Basic DS
Sorting
Recursion
Binary Search
Hashing
Two Pointers
Sliding Window
Trees
Graphs
DP
Advanced
Basic Data Structures Arrays Strings Linked Lists (Singly and Doubly) Stacks Queues and Deques
Trees Binary Trees Binary Search Trees AVL Trees Trie (Prefix Tree) Segment Tree Binary Indexed Tree
Graphs Adjacency Matrix and List DFS and BFS Dijkstra Shortest Path Bellman-Ford Union Find (DSU) Topological Sort
Algorithms Brute Force Divide and Conquer Greedy Dynamic Programming Backtracking Sliding Window
Advanced Structures Min and Max Heaps Hash Tables Priority Queues Monotonic Stack Disjoint Set Union
Interview Must-Knows Bit Manipulation Math and Number Theory Sorting Algorithms OOP in Java System Design Basics
Core Topics by Language
Language specific things interviewers ask about
Multithreading and Concurrency
Exception Handling
Collections Framework
Design Patterns (Singleton, Factory)
Stream API and Lambdas
Memory Management and GC
Generics and Interfaces
Closures and Scope
Promises and Async/Await
Event Loop and Call Stack
Array Methods (map, filter, reduce)
Object Prototypes and this
ES6 and newer features
JOIN types (INNER, LEFT, RIGHT)
Aggregate Functions
Subqueries and CTEs
Database Design
Normalization (1NF to 3NF)
Index Optimization
A Personal Note
Before you start...
Be regular . That is the most important thing.
I have solved medium problems before, but after taking a
3 or 4 month break, even easy questions felt difficult.
Even if you only have 30 minutes , use them every
day. Consistency beats motivation.
Try to join weekly contests on
LeetCode ,
Codeforces ,
CodeChef , or
GFG .
They give the best reality check for your speed and thinking.
I personally follow Striver and solve everything in
Java . This guide reflects that approach.
Pick one sheet, trust the process, and finish it.
I genuinely hope this roadmap saves you time and helps you land
the placement you are working for.
Good luck,
Sanjay