03 September 2025

#DSA

#DSA
Level Topic Subtopics
Basic Arrays Static arrays, Dynamic arrays, Traversal, Searching
Strings String manipulation, Substrings, Palindromes
Linked List Singly, Doubly, Circular, Operations (insert, delete, traverse)
Stacks LIFO, Implementation using array/linked list, Applications
Queues FIFO, Circular Queue, Priority Queue basics
Recursion Base case, Recursive calls, Tail recursion, Factorial, Fibonacci
Hashing Basics Hash functions, HashMap, Collision handling
Sorting Basics Bubble, Selection, Insertion, Time complexity
Searching Basics Linear search, Binary search, Sorted/unsorted arrays
Complexity Analysis Time complexity, Space complexity, Big-O, Big-Theta
Intermediate Advanced Sorting Merge Sort, Quick Sort, Heap Sort, Counting Sort
Binary Search Tree (BST) Insert, Delete, Traversal (Inorder, Preorder, Postorder)
Graphs Basics Adjacency list/matrix, DFS, BFS, Representation
Heaps Min-Heap, Max-Heap, Heapify, Priority Queue
Hashing Advanced Open addressing, Separate chaining, HashSet/HashMap
Linked List Advanced Reversal, Detect cycle, Merge two lists
Stacks & Queues Advanced Min stack, Stack using queues, Queue using stacks
Recursion Advanced Backtracking, N-Queens, Maze problem, Subset generation
Sliding Window Technique Maximum/minimum window, Sum problems, String matching
Two Pointers Technique Array problems, Linked list problems, Sorting-based problems
Advanced Graph Algorithms Dijkstra, Bellman-Ford, Floyd-Warshall, Topological Sort
Dynamic Programming (DP) Memoization, Tabulation, Fibonacci, Knapsack, LCS
Advanced Trees AVL Tree, Red-Black Tree, Segment Tree, Fenwick Tree
Trie Insert, Search, Prefix search, Autocomplete
Disjoint Set (Union-Find) Path compression, Union by rank, Applications
Greedy Algorithms Activity selection, Fractional knapsack, Huffman coding
Backtracking Advanced Sudoku solver, N-Queens, Word search
Graph Traversals Advanced Weighted, Directed, Undirected, Cycle detection
Bit Manipulation XOR tricks, Masks, Counting set bits, Power of 2 checks
Matrix Algorithms Matrix rotation, Path problems, Submatrix sum, DP on grids
Expert Advanced DP DP on strings, DP on trees, DP with bitmasking
Advanced Graphs Minimum spanning tree, Network flow, Shortest paths variants
Segment Trees Advanced Range sum, Range minimum/maximum, Lazy propagation
Fenwick Trees Binary Indexed Tree, Prefix sum, Range updates
Advanced Heaps Indexed heap, Pairing heap, Applications in Dijkstra
Advanced Tries Suffix trie, Compressed trie, Applications in string search
Computational Geometry Convex hull, Line intersection, Closest pair
Advanced Searching Ternary search, Exponential search, KMP algorithm
Algorithm Design Patterns Divide & Conquer, Greedy, Dynamic Programming, Backtracking
Research & Optimization Time-space optimization, Parallel algorithms, Latest techniques

1. Arrays

  1. What is an array and how is it different from a linked list?
  2. How do you find the maximum and minimum element in an array?
  3. How do you reverse an array in place?
  4. How do you rotate an array?
  5. How do you find the sum of all elements in an array?
  6. How do you find the subarray with maximum sum?
  7. What is the difference between a dynamic and static array?
  8. How do you remove duplicates from a sorted array?
  9. How do you merge two sorted arrays?
  10. How do you implement binary search in an array?
  11. How do you find the kth largest element in an array?
  12. How do you find the majority element in an array?
  13. How do you find pairs with a given sum in an array?
  14. How do you implement an array rotation using the reversal algorithm?
  15. How do you move all zeros to the end of an array?
  16. How do you find the intersection of two arrays?
  17. How do you find missing numbers in an array?
  18. How do you find duplicates in an array?
  19. How do you implement a 2D array?
  20. How do you find the longest consecutive subsequence in an array?
  21. How do you implement an array as a stack?
  22. How do you implement an array as a queue?
  23. How do you find equilibrium index in an array?
  24. How do you find the next greater element in an array?
  25. How do you implement circular arrays?

2. Linked Lists

  1. What is a linked list and its types?
  2. How do you reverse a linked list?
  3. How do you detect a loop in a linked list?
  4. How do you remove duplicates from a linked list?
  5. How do you find the middle of a linked list?
  6. How do you merge two sorted linked lists?
  7. How do you find the length of a linked list?
  8. How do you implement a doubly linked list?
  9. How do you detect and remove a loop in a linked list?
  10. How do you find the nth node from the end?
  11. How do you implement a circular linked list?
  12. How do you reverse a doubly linked list?
  13. How do you check if a linked list is a palindrome?
  14. How do you swap two nodes in a linked list?
  15. How do you add two numbers represented by linked lists?
  16. How do you rotate a linked list?
  17. How do you remove a node given only a reference to it?
  18. How do you implement a stack using a linked list?
  19. How do you implement a queue using a linked list?
  20. How do you delete alternate nodes in a linked list?
  21. How do you segregate even and odd nodes?
  22. How do you flatten a multilevel linked list?
  23. How do you find intersection point of two linked lists?
  24. How do you clone a linked list with random pointers?
  25. How do you reverse nodes in k-group?

3. Stack & Queue

  1. What is a stack and its applications?
  2. How do you implement a stack using arrays?
  3. How do you implement a stack using linked lists?
  4. How do you implement a queue using arrays?
  5. How do you implement a queue using linked lists?
  6. What is a circular queue?
  7. What is a priority queue?
  8. How do you implement a stack using two queues?
  9. How do you implement a queue using two stacks?
  10. How do you evaluate postfix expressions?
  11. How do you evaluate prefix expressions?
  12. How do you convert infix to postfix?
  13. How do you implement a deque?
  14. How do you find the minimum element in a stack in O(1)?
  15. How do you check for balanced parentheses using stack?
  16. How do you implement a stack with dynamic resizing?
  17. How do you implement sliding window maximum using deque?
  18. How do you implement LRU cache using stack/queue?
  19. How do you implement a circular buffer?
  20. How do you implement undo functionality using stack?
  21. How do you sort a stack using recursion?
  22. How do you implement a queue with multiple priorities?
  23. How do you implement stack using recursion only?
  24. How do you detect a redundant bracket in an expression?
  25. How do you evaluate an expression with variables?

4. Trees

  1. What is a binary tree?
  2. What is a binary search tree (BST)?
  3. How do you traverse a tree using preorder, inorder, postorder?
  4. How do you implement level-order traversal?
  5. How do you find height of a binary tree?
  6. How do you find the diameter of a tree?
  7. How do you find lowest common ancestor in a BST?
  8. How do you check if a tree is balanced?
  9. How do you check if a tree is a BST?
  10. How do you serialize and deserialize a tree?
  11. How do you find the maximum path sum in a tree?
  12. How do you find nodes at distance k from a given node?
  13. How do you find level with maximum sum?
  14. How do you implement a binary tree using arrays?
  15. How do you implement a threaded binary tree?
  16. How do you mirror a binary tree?
  17. How do you find the boundary nodes of a binary tree?
  18. How do you check if two trees are identical?
  19. How do you construct a tree from inorder and preorder traversal?
  20. How do you construct a tree from inorder and postorder traversal?
  21. How do you convert a BST to a sorted doubly linked list?
  22. How do you find the kth smallest/largest element in BST?
  23. How do you find sum of all left leaves in a tree?
  24. How do you find the vertical order traversal of a tree?
  25. How do you implement a trie for string search?

5. Graphs

  1. What is a graph and its types?
  2. What is adjacency list and adjacency matrix?
  3. How do you perform BFS on a graph?
  4. How do you perform DFS on a graph?
  5. How do you detect a cycle in a directed graph?
  6. How do you detect a cycle in an undirected graph?
  7. How do you find connected components in a graph?
  8. How do you implement Dijkstra?s algorithm?
  9. How do you implement Bellman-Ford algorithm?
  10. How do you implement Floyd-Warshall algorithm?
  11. How do you implement Prim?s algorithm?
  12. How do you implement Kruskal?s algorithm?
  13. How do you detect a bipartite graph?
  14. How do you find shortest path in unweighted graph?
  15. How do you find topological sort of a graph?
  16. How do you implement A* algorithm?
  17. How do you find strongly connected components?
  18. How do you detect articulation points in a graph?
  19. How do you detect bridges in a graph?
  20. How do you find minimum spanning tree?
  21. How do you detect Hamiltonian cycle?
  22. How do you detect Eulerian path or cycle?
  23. How do you implement graph using STL in C++ or Collections in Java?
  24. How do you traverse a graph recursively and iteratively?
  25. How do you solve graph problems with backtracking?

6. Hashing

  1. What is a hash table and its operations?
  2. How do you handle collisions in hashing?
  3. What is separate chaining?
  4. What is open addressing?
  5. Explain linear probing.
  6. Explain quadratic probing.
  7. Explain double hashing.
  8. How do you design a good hash function?
  9. What is load factor in a hash table?
  10. How do you resize a hash table?
  11. How do you implement LRU cache using hashing?
  12. How do you check for duplicates in an array using hashing?
  13. How do you find pairs with given sum using hashing?
  14. How do you implement a set using hashing?
  15. How do you implement a map using hashing?
  16. How do you count frequency of elements using hash table?
  17. How do you implement a dictionary using hashing?
  18. How do you detect anagrams using hashing?
  19. How do you implement prefix sum with hashing?
  20. How do you solve subarray sum problems using hashing?
  21. How do you detect repeated substrings using hashing?
  22. How do you find first non-repeating element using hashing?
  23. How do you implement custom hash table?
  24. How do you optimize hash table performance?
  25. How do you implement consistent hashing?

7. Dynamic Programming

  1. What is dynamic programming (DP)?
  2. Difference between memoization and tabulation?
  3. How do you solve Fibonacci series using DP?
  4. How do you solve the knapsack problem using DP?
  5. How do you solve the longest common subsequence problem?
  6. How do you solve the longest increasing subsequence problem?
  7. How do you solve matrix chain multiplication problem?
  8. How do you solve the coin change problem?
  9. How do you solve the rod cutting problem?
  10. How do you solve the minimum edit distance problem?
  11. How do you solve the subset sum problem?
  12. How do you solve the palindrome partitioning problem?
  13. How do you solve the house robber problem?
  14. How do you solve the optimal binary search tree problem?
  15. How do you solve the egg drop problem?
  16. How do you solve the word break problem?
  17. How do you solve the maximum subarray sum problem?
  18. How do you solve the unique paths problem in a grid?
  19. How do you solve the minimum path sum problem?
  20. How do you solve the DP problem with 2D states?
  21. How do you optimize DP with space optimization?
  22. How do you solve DP problems using bitmasking?
  23. How do you solve the count number of ways problem?
  24. How do you solve the minimum coins problem?
  25. How do you approach new DP problems effectively?

No comments:

Post a Comment

Most views on this month

Popular Posts