leetcode-grind75-javascript
leetcode-grind75-javascript copied to clipboard
My leetcode solutions and resources for the Grind 75 list in JavaScript
Grind75 Solutions & Resources: JavaScript
As I work through this list I figure I would make a GitHub repo with my solutions along with articles and videos that relate to the problems that I've found helpful.
The problems
Easy
- Two Sum #1
- Valid Parentheses #20
- Merge Two Sorted Lists #21
- Best Time to Buy and Sell Stock #121
- Valid Palindrome #125
- Invert Binary Tree #226
- Valid Anagram #242
- Binary Search #704
- Flood Fill #733
- Lowest Common Ancestor of a Binary Search Tree #235
- Balanced Binary Tree #110
- Linked List Cycle #141
- Implement Queue using Stacks #232
- First Bad Version #278
- Ransom Note #383
- Climbing Stairs #70
- Longest Palindrome #409
- Reverse Linked List #206
- Majority Element #169
- Add Binary #67
- Diameter of Binary Tree #543
- Middle of the Linked List #876
- Maximum Depth of Binary Tree #104
- Contains Duplicate #217
Medium
- Maximum Subarray #53
- Insert Interval #57
- 01 Matrix #542
- K Closest Points to Origin #973
- Longest Substring Without Repeating Characters #3
- 3Sum #15
- Binary Tree Level Order Traversal #102
- Clone Graph #133
- Evaluate Reverse Polish Notation #150
- Course Schedule #207
- Implement Trie (Prefix Tree) #208
- Coin Change #322
- Product of Array Except Self #238
- Min Stack #155
- Validate Binary Search Tree #98
- Number of Islands #200
- Rotting Oranges #994
- Search in Rotated Sorted Array #33
- Combination Sum #39
- Permutations #46
- Merge Intervals #56
- Lowest Common Ancestor of a Binary Tree #236
- Time Based Key-Value Store #981
- Accounts Merge #721
- Sort Colors #75
- Word Break #139
- Partition Equal Subset Sum #416
- String to Integer (atoi) #8
- Spiral Matrix #54
- Subsets #78
- Binary Tree Right Side View #199
- Longest Palindromic Substring #5
- Unique Paths #62
- Construct Binary Tree from Preorder and Inorder Traversal #105
- Container With Most Water #11
- Letter Combinations of a Phone Number #17
- Word Search #79
- Find All Anagrams in a String #438
- Minimum Height Trees #310
- Task Scheduler #621
- LRU Cache #146
- Kth Smallest Element in a BST #230
Hard
- Minimum Window Substring #76
- Serialize and Deserialize Binary Tree #297
- Trapping Rain Water #42
- Find Median from Data Stream #295
- Word Ladder #127
- Basic Calculator #224
- Maximum Profit in Job Scheduling #1235
- Merge k Sorted Lists #23
- Largest Rectangle in Histogram #84
Data Structures
In order to practice with similar data structures I'll be placing each problem in the categories below, along with some similar problems nested below to help practice with those data structures.
Array
- Two Sum #1
- Best Time to Buy and Sell Stock #121
- Binary Search #704
- Flood Fill #733
- Maximum Subarray #53
- Majority Element #169
- Contains Duplicate #217
- K Closest Points to Origin #973
- Insert Interval #57
- 01 Matrix #542
- 3Sum #15
- Merge Intervals #56
- Evaluate Reverse Polish Notation #150
- Maximum Units on a Truck #1710
- Meeting Rooms II
- Coin Change #322
- Product of Array Except Self #238
- Number of Islands #200
- Rotting Oranges #994
- Search in Rotated Sorted Array #33
- Combination Sum #39
- Trapping Rain Water #42
Queue
- Invert Binary Tree #226
- Flood Fill #733
- Implement Queue using Stacks #232
- Maximum Depth of Binary Tree #104
- Binary Tree Level Order Traversal #102
- Coin Change #322
- Number of Islands #200
- Rotting Oranges #994
Stack
- Valid Parentheses #20
- Invert Binary Tree #226
- Flood Fill #733
- Implement Queue using Stacks #232
- Maximum Depth of Binary Tree #104
- Evaluate Reverse Polish Notation #150
- Min Stack #155
- Validate Binary Search Tree #98
- Number of Islands #200
Linked Lists
- Merge Two Sorted Lists #21
- Convert Binary Number in a Linked List to Integer #1290
- Linked List Cycle #141
- Reverse Linked List #206
- Middle of the Linked List #876
- LRU Cache #146
- Merge k Sorted Lists #23
Hash Table
- Two Sum #1
- Valid Parentheses #20
- Valid Anagram #242
- Linked List Cycle #141
- Ransom Note #383
- Climbing Stairs #70
- Longest Palindrome #409
- Majority Element #169
- Contains Duplicate #217
- Longest Substring Without Repeating Characters #3
- 3Sum #15
- Clone Graph #133
- LRU Cache #146
- Implement Trie (Prefix Tree) #208
Binary Tree
- Invert Binary Tree #226
- Lowest Common Ancestor of a Binary Search Tree #235
- Balanced Binary Tree #110
- Diameter of Binary Tree #543
- Maximum Depth of Binary Tree #104
- Binary Tree Level Order Traversal #102
- Validate Binary Search Tree #98
Graph
Heap
Trie
Algorithm Patterns
Within the problems above there are several patterns that often occur. I plan to categorize each problem such that if you are having problem with a particular pattern you can look for other similar problems that use the same pattern.
Two Pointers
- Best Time to Buy and Sell Stock #121
- Valid Palindrome #125
- Linked List Cycle #141
- Reverse Linked List #206
- Middle of the Linked List #876
- Contains Duplicate #217
- 3Sum #15
- Meeting Rooms II
- Trapping Rain Water #42
Sliding Window
Binary Search
Breadth First Search
- Invert Binary Tree #226
- Flood Fill #733
- Maximum Depth of Binary Tree #104
- 01 Matrix #542
- Binary Tree Level Order Traversal #102
- Clone Graph #133
- Number of Provinces #547
- Course Schedule #207
- Coin Change #322
- Number of Islands #200
- Rotting Oranges #994
Depth First Search
- Invert Binary Tree #226
- Flood Fill #733
- Lowest Common Ancestor of a Binary Search Tree #235
- Balanced Binary Tree #110
- Diameter of Binary Tree #543
- Maximum Depth of Binary Tree #104
- Clone Graph #133
- Number of Provinces #547
- Course Schedule #207
- Validate Binary Search Tree #98
- Number of Islands #200
- Combination Sum #39
Divide & Conquer
Dynamic Programming
Attribution
- The original Grind 75 list can be found here