A refined and expanded list of DSA topics, with high-quality problems and resources:
- Arrays and Strings
- Problems: • Two Sum • Container With Most Water • Longest Substring Without Repeating Characters • Trapping Rain Water • Longest Palindromic Substring
- Resources: • Algorithms: Arrays and Strings (Stanford) • LeetCode Array Card
- Linked Lists
- Problems: • Reverse Linked List • Merge K Sorted Lists • LRU Cache • Copy List with Random Pointer • Find the Intersection point of Y LinkedList
- Resources: • Linked List Problems (GeeksforGeeks) • Visualizing Linked Lists (UBC)
- Stacks and Queues
- Problems: • Valid Parentheses • Implement Queue using Stacks • Min Stack • Largest Rectangle in Histogram • Sliding Window Maximum • Design a Data Structure that Supports Both Stacks and Queues
- Resources: • Stack and Queue Visualizations (USFCA) • Queue Reconstruction by Height (LeetCode)
- Trees and Binary Search Trees
- Problems: • Lowest Common Ancestor of a Binary Tree • Serialize and Deserialize Binary Tree • Binary Tree Maximum Path Sum • Construct Binary Tree from Preorder and Inorder Traversal • Validate Binary Search Tree • Diameter of Binary Tree • Binary Tree Right Side View
- Resources: • Binary Trees (MIT OpenCourseWare) • Tree Traversal Techniques (TowardsDataScience)
- Graphs
- Problems: • Course Schedule (Topological Sort) • Word Ladder • Number of Islands • Alien Dictionary • Network Delay Time (Dijkstra’s Algorithm) • - Shortest Path in Binary Matrix • Find Eventual Safe States
- Resources: • Graph Algorithms (Princeton) • Graph Theory Playlist (William Fiset)
- Hash Tables
- Problems: • Group Anagrams • Longest Consecutive Sequence • Subarray Sum Equals K • Design Twitter • Implement LRU Cache • four sum • Minimum Window Substring
- Resources: • Hashing in C++ (GeeksforGeeks) • Hash Table Problems (InterviewBit)
- Heaps and Priority Queues
- Problems: • Merge K Sorted Lists • Find Median from Data Stream • Top K Frequent Elements • Minimum Cost to Connect Sticks • Swim in Rising Water • Reorganize String • Sliding window median
- Resources: • Priority Queues (Princeton) • Heaps and Priority Queues (HackerEarth)
- Dynamic Programming
- Problems: • Longest Common Subsequence • Edit Distance • Coin Change • Longest Increasing Subsequence • Regular Expression Matching • Maximum Subarray • Decode ways • House robber
- Resources: • Dynamic Programming (TopCoder) • Errichto’s DP lectures
- Sorting and Searching
- Problems: • Kth Largest Element in an Array • Search in Rotated Sorted Array • Median of Two Sorted Arrays • Find First and Last Position of Element in Sorted Array • Count of Smaller Numbers After Self • peak element • search a 2d matrix
- Resources: • Sorting Algorithms Animations • Binary Search 101 (Topcoder)
- Greedy Algorithms
- Problems: • Jump Game • Task Scheduler • Gas Station • Partition Labels • Minimum Number of Arrows to Burst Balloons • Candy • Lemonade Change
- Resources: • Greedy Algorithms (GeeksforGeeks) • Greedy Method (NPTEL)
- Bit Manipulation
- Problems: • Single Number • Counting Bits • Reverse Bits • Sum of Two Integers • UTF-8 Validation • Maximum Product of word lenghts • Bitwise AND of numbers range
- Resources: • Bit Manipulation (HackerEarth) • Bit Twiddling Hacks
- Trie
- Problems: • Implement Trie (Prefix Tree) • Word Search II • Design Add and Search Words Data Structure • Maximum XOR of Two Numbers in an Array • Replace words • Concatenated Words
- Resources: • Trie Data Structure (TopCoder) • Trie Visualization
- Union Find (Disjoint Set)
- Problems: • Number of Islands II • Accounts Merge • Redundant Connection • Satisfiability of Equality Equations • Graph Valid Tree • Longest Consecutive Sequence
- Resources: • Disjoint Set Data Structures (GeeksforGeeks) • Union-Find Algorithm (Princeton)
General Resources:
- CLRS Book - Comprehensive algorithm textbook
- Algorithms Illuminated - Modern algorithm course and book series
- Competitive Programmer’s Handbook - Comprehensive guide for competitive programming
- CP-Algorithms - Detailed explanations of algorithms
- VisuAlgo - Visualizing data structures and algorithms through animation
Practice Platforms:
This expanded list covers a wide range of topics and includes more challenging problems.