DSA Topics for Interviews with Java
Array
- Two Sum
- Kadanes Algorithm (Maximum Subarray)
- Merge Intervals
- Rotate Array
- Trapping Rain Water
- Move Zeroes
String
- Longest Substring Without Repeating Characters
- Anagram Check
- String Compression
- Palindrome Check
- Longest Palindromic Substring
Linked List
- Reverse a Linked List
- Detect Cycle in a Linked List
- Merge Two Sorted Linked Lists
- Remove N-th Node from End
- Palindrome Linked List
Stack & Queue
- Valid Parentheses
- Min Stack
- Implement Queue using Stacks
- Sliding Window Maximum
- Next Greater Element
Tree & Binary Search Tree
- Inorder, Preorder, Postorder Traversal
- Level Order Traversal
- Lowest Common Ancestor (LCA)
- Validate BST
- Diameter of Binary Tree
Heap / Priority Queue
- Kth Largest Element
- Top K Frequent Elements
- Merge K Sorted Lists
- Find Median from Data Stream
Recursion & Backtracking
- N-Queens Problem
- Sudoku Solver
- Subsets
- Permutations
- Combination Sum
Binary Search
- Binary Search on Sorted Array
- Search in Rotated Sorted Array
- Find Peak Element
- Median of Two Sorted Arrays
Greedy Algorithms
- Activity Selection Problem
- Fractional Knapsack
- Jump Game
- Gas Station
- Minimum Number of Platforms
Dynamic Programming (DP)
- 0/1 Knapsack
- Fibonacci (Top-down & Bottom-up)
- Longest Common Subsequence (LCS)
- Longest Increasing Subsequence
- Edit Distance
- Coin Change
Graph Algorithms
- BFS & DFS
- Topological Sort
- Dijkstras Algorithm
- Kruskals and Prims Algorithm (MST)
- Detect Cycle in Directed/Undirected Graph
Trie
- Implement Trie
- Word Search II
- Longest Prefix Matching
Sliding Window & Two Pointer
- Longest Substring Without Repeating
- Minimum Window Substring
- Max Sum Subarray of Size K
- Pair with Target Sum
Union-Find (Disjoint Set)
- Union by Rank / Path Compression
- Number of Connected Components
- Detect Cycle in Graph (Union-Find)