1.
Array
Conceptual:
• What is the difference between an array and a linked list?
• How is memory allocated in arrays?
• What are the limitations of arrays?
Coding:
• Find the second largest element in an array.
• Move all zeros to the end of the array.
• Rotate an array by k positions.
• Kadane’s Algorithm for maximum subarray sum.
• Merge two sorted arrays without using extra space.
2. String
Conceptual:
• Difference between String, StringBuilder, and StringBuffer (Java-specific).
• Why are strings immutable in Java?
• What is the time complexity of string concatenation?
Coding:
• Check if a string is a palindrome.
• Find the first non-repeating character.
• Count the number of vowels and consonants.
• Reverse words in a string.
• Implement strstr() (substring search).
3. Linked List
Conceptual:
• Difference between singly and doubly linked list.
• Advantages of linked lists over arrays.
• Applications of linked lists.
Coding:
• Reverse a linked list.
• Detect and remove a loop in a linked list.
• Find the middle of a linked list.
• Merge two sorted linked lists.
• Delete a node without head pointer.
4. Stack
Conceptual:
• Difference between stack and queue.
• How can stack be implemented using arrays/linked list?
• Applications of stack (e.g., backtracking, expression evaluation).
Coding:
• Implement a stack using two queues.
• Check for balanced parentheses.
• Evaluate postfix expression.
• Design a stack that supports getMin() in O(1) time.
5. Queue
Conceptual:
• Types of queues (circular, priority, deque).
• Applications of queue in real life.
• Difference between queue and circular queue.
Coding:
• Implement a queue using two stacks.
• Generate binary numbers from 1 to N using a queue.
• Implement circular queue.
• LRU Cache using deque.
6. Tree
Conceptual:
• What is a binary tree? Binary search tree?
• Difference between full, complete, and perfect binary tree.
• In-order vs Pre-order vs Post-order traversal.
Coding:
• Check if a binary tree is balanced.
• Convert a binary tree to its mirror.
• Lowest Common Ancestor in a binary tree.
• Print level order traversal.
• Validate a binary search tree.
7. Graph
Conceptual:
• Difference between DFS and BFS.
• Adjacency list vs Adjacency matrix.
• Applications of graphs in real life.
Coding:
• Detect cycle in a graph (BFS/DFS).
• Find shortest path using Dijkstra’s algorithm.
• Topological sort of a DAG.
• Number of islands (DFS in 2D matrix).
8. Hashing
Conceptual:
• What is hashing? What are hash collisions?
• How does HashMap work internally (in Java)?
• Difference between HashMap and HashSet.
•
Coding:
• Two sum problem.
• Find duplicates in an array.
• Count frequency of elements.
• Longest subarray with sum = 0.
9. Heap
Conceptual:
• What is a heap? Max vs Min Heap.
• Applications of heap.
• How is a heap implemented?
Coding:
• Find k largest/smallest elements in an array.
• Merge k sorted arrays.
• Implement a priority queue using a heap.