Here's a list of beginner-friendly LeetCode problems covering various data structures and algorithms:
- Arrays
- Linked Lists
- Stacks
- Valid Parentheses (use a stack to check for balanced parentheses)
- Minimum Size Subarray Sum (use a stack to find the smallest subarray with a given sum)
- Queues
- Implement Queue using Stacks
- Shortest Completing Word (use a queue to process words based on a given dictionary and requirements)
- Trees
- Construct Binary Tree from Inorder and Postorder Traversal (a good introduction to tree traversals)
- Validate Binary Search Tree
- Heaps
- 3Sum (use a heap to find the closest triplet)
- Kth Largest Element in an Array
- Hash Tables
- Two Sum II - Input array is sorted (use a hash table to find pairs with the given sum)
- Longest Substring With At Most Two Distinct Characters (use a hash table to track characters in the current window)
- Dynamic Programming
- Fibonacci Number
- Climbing Stairs (a simple problem that demonstrates the concept of overlapping subproblems)
- Greedy Algorithms
- Maximum Product of Pairwise Product
- Largest 3 Sum (a good example of finding the maximum sum with a greedy approach)
- Graphs
- Course Schedule (use topological sorting to check if it's possible to graduate given prerequisites)
- Number of Provinces (a simple problem that demonstrates the concept of connected components in graphs)