Indian Placement Prep - Java and DSA

Your personal
DSA 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 Java Focused
DSA Sheets
All important sheets in one place
TUF
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
CodeHelp
Sheet 02
Love Babbar 450 Sheet
Quick Revision
Good for revising fast. 450 well picked problems that cover all the main topics.
Open Sheet
NeetCode
Sheet 03
NeetCode 150
LeetCode Style Practice
Best if you are targeting FAANG. Has video explanations for every problem.
Open Sheet
Fraz
Sheet 04
Fraz DSA Sheet
Good Alternative
Nice topic wise structure. A solid alternative if you want something different from Babbar.
Open Sheet
Apna College
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
TCS
NQT
Wipro
Elite / Turbo
IBM
Infosys
SP / DSE
Tech Mahindra
Cognizant
GenC / GenC Next
Capgemini
HCL Tech
Accenture
ASE / AASE
L&T Infotech
Dream Companies (Product Based)
Amazon
FAANG
Microsoft
FAANG
Google
FAANG
Adobe
Product
Oracle
Product
Goldman Sachs
Product
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
String Manipulation
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
#ConceptProblemLevel
01RecursionMax Depth of Binary Tree - #104Easy
02Sliding WindowLongest Substring Without Repeat - #3Medium
03StringsLongest Palindromic Substring - #5Medium
04BFSLevel Order Traversal - #102Medium
05DFSNumber of Islands - #200Medium
06DPMaximum Subarray (Kadane's) - #53Medium
07GreedyJump Game - #55Medium
08Two Pointers3 Sum - #15Medium
09BacktrackingPermutations - #46Medium
10Binary SearchBinary Search - #704Easy
11TreeInorder Traversal - #94Easy
12OOP JavaLRU Cache - #146Medium
13SQLSecond Highest Salary - #176Medium
14StackValid Parentheses - #20Easy
15GreedyMinimum Arrows - #452Medium
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
BinarySearchTwoPointers
If asked for all
Permutations or Subsets
Backtracking
If given a
Tree
DFSBFS
If given a
Graph
DFSBFS
If given a
Linked List
TwoPointers
If recursion is
Not Allowed
Stack
If must solve
In-place
SwapValuesMultiPointer
If max or min
Subarray or Subset
DP
If top or least
K Items
HeapQuickSelect
If asked for
Common Strings
MapTrie
Otherwise O(1) space
Map or Set
O(n) timeO(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
Java
Core Topics by Language
Language specific things interviewers ask about
Java

Java

  • Multithreading and Concurrency
  • Exception Handling
  • Collections Framework
  • Design Patterns (Singleton, Factory)
  • Stream API and Lambdas
  • Memory Management and GC
  • Generics and Interfaces
JS

JavaScript

  • 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
SQL

SQL

  • JOIN types (INNER, LEFT, RIGHT)
  • Aggregate Functions
  • Subqueries and CTEs
  • Database Design
  • Normalization (1NF to 3NF)
  • Index Optimization
Practice Platforms
Where to spend your time
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