- Find the duplicate number in an array.
- Rotate an array.
- Implement an algorithm to reverse a string.
- Check if two strings are anagrams.
- Implement a function to find the first non-repeating character in a string.
- Given an array of integers, find the subarray with the maximum sum (Kadane's algorithm).
- Implement an algorithm to perform string compression (e.g., "aaabbb" becomes "a3b3").
- Determine if a string has all unique characters.
- Implement an algorithm to check if a string is a rotation of another string.
- Move all zeroes to the end of an array without changing the order of non-zero elements.
- Reverse a linked list.
- Detect a cycle in a linked list.
- Find the middle element of a linked list.
- Merge two sorted linked lists.
- Remove duplicates from a sorted/unsorted linked list.
- Merge K sorted linked lists.
- Implement a function to add two numbers represented by linked lists.
- Check if a linked list is a palindrome.
- Find the intersection point in Y-shaped linked lists.
- Clone a linked list with next and random pointer.
- Implement depth-first search (DFS) and breadth-first search (BFS) on a graph.
- Find the lowest common ancestor (LCA) in a binary tree.
- Determine if a binary tree is a binary search tree (BST).
- Implement binary tree traversals (in-order, pre-order, post-order).
- Find the shortest path in an unweighted graph (BFS).
- Check if a binary tree is balanced.
- Serialize and deserialize a binary tree.
- Determine if there's a path between two nodes in a directed graph.
- Topological sort of a directed acyclic graph (DAG).
- Find the shortest path in a weighted graph (Dijkstra's or Bellman-Ford).
- Implement various sorting algorithms to sort given arrays.
- Search for an element in a sorted and rotated array.
- Find the kth smallest/largest element in an array.
- Implement binary search.
- Count the number of occurrences of an element in a sorted array.
- Find the peak element in an array.
- Implement a square root function (binary search).
- Search in a 2D matrix.
- Implement an efficient algorithm for matrix multiplication.
- Count inversions in an array.
- Calculate the nth Fibonacci number using dynamic programming.
- Find the longest common subsequence of two strings.
- Calculate the minimum edit distance between two strings.
- Solve the Knapsack problem (0/1 or fractional).
- Find the longest increasing subsequence.
- Solve the coin change problem.
- Find the longest palindrome subsequence.
- Find the maximum subarray sum with no adjacent elements.
- Solve the word break problem.
- Determine the optimal strategy for a game (like the coin game).
- Implement a stack using arrays/linked lists and implement a queue using stacks.
- Design a cache with O(1) lookup time.
- Implement a trie (prefix tree).
- Check if a string has valid parentheses.
- Design and implement an LRU (Least Recently Used) cache.
- Design a data structure that supports insert, delete.