Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mahmoodhamdi/leet_code_100_days
LeetCode 100 Days Challenge: Improve problem-solving skills by tackling LeetCode problems over 100 days.
https://github.com/mahmoodhamdi/leet_code_100_days
challenge data-structures data-structures-and-algorithms leetcode leetcode-dart solving-algorithm
Last synced: about 1 month ago
JSON representation
LeetCode 100 Days Challenge: Improve problem-solving skills by tackling LeetCode problems over 100 days.
- Host: GitHub
- URL: https://github.com/mahmoodhamdi/leet_code_100_days
- Owner: mahmoodhamdi
- Created: 2024-05-19T08:17:35.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2024-07-27T03:22:42.000Z (5 months ago)
- Last Synced: 2024-07-27T04:29:31.748Z (5 months ago)
- Topics: challenge, data-structures, data-structures-and-algorithms, leetcode, leetcode-dart, solving-algorithm
- Language: Dart
- Homepage:
- Size: 60.5 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# LeetCode 100 Days Challenge
Welcome to the LeetCode 100 Days Challenge! This challenge will help you improve your problem-solving skills by solving various LeetCode problems over 100 days. The challenge is structured into different periods, each focusing on a specific topic.
---
## Introduction and Setup
- **Topic**: Account created, explore site
- **Estimated Duration**: 1 hour
- **Status**: ☑️---
## Period 1: Basic Programming (Day 1-10)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|--------------------|-----------------------------------|--------------------|-------|--------|
| Basic Programming | Two Sum | 1 hour | Utilized Dart's Map data structure for efficient lookup, achieving O(n) time complexity instead of O(n^2) | ☑️ |
| Basic Programming | Add Two Numbers | 1.5 hours | | ☐ |
| Control Structures | Palindrome Number | 1 hour | This approach avoids string manipulation and directly works with the number itself, making it more efficient. | ☑️ |
| Control Structures | Fizz Buzz | .25 hour | Very basic approach | ☑️ |
| Control Structures | Roman to Integer | 1 hour | Use a single-character map for Roman numerals and check the next character directly in the loop | ☑️ |
| Control Structures | Integer to Roman | 1.5 hours | List of MapEntries to maintain the order and avoid accessing map by key, and using StringBuffer for efficient string concatenation. | ☑️ |
| Control Structures | String to Integer (atoi) | 1.5 hours | Not fully understood | ☑️ |
| Basic Programming | Reverse Integer | 1 hour | Use modulus operator instead of `.toString()` | ☑️ |
| Control Structures | Valid Parentheses | 1 hour | Define a map for matching pairs of parentheses to reduce number checks | ☑️ |"وَفِي السَّمَاءِ رِزْقُكُمْ وَمَا تُوعَدُونَ"
---
## Period 2: Arrays (Day 11-20)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|-------|-----------------------------------------|--------------------|-------|--------|
| Arrays | Remove Duplicates from Sorted Array | 1 hour | Reread the problem in details | ☑️ |
| Arrays | Best Time to Buy and Sell Stock | 1 hour | | ☑️ |
| Arrays | Contains Duplicate | .25 hour | Use set to store the numbers to reduce the time complexity of the algorithm to O(n) | ☑️ |
| Arrays | Product of Array Except Self | 1.5 hours | We can use two passes through the array. First, we calculate the prefix product and then calculate the suffix product. | ☑️ |
| Arrays | Maximum Subarray | 0.5 hours | | ☑️ |
| Arrays | Merge Intervals | 2 hours | Sort intervals by start time. Merge overlapping intervals by updating the end time of the last merged interval. | ☑️ |
| Arrays | Insert Interval | 2 hours | Merge all overlapping intervals with the new interval using `math.max()` and `math.min()` | ☑️ |
| Arrays | 3Sum | 2 hours | Array Two Pointers Sorting | ☑️ |
| Arrays | Set Matrix Zeroes | 1.5 hours | Use the first row and column as markers to track zeroes and then zero out the corresponding rows and columns in the matrix | ☑️ |
| Arrays | Rotate Image | 1.5 hours | Array Math Matrix | ☑️ |"احرص على ما ينفعك، واستعن بالله ولا تعجز."
---
## Period 3: Strings (Day 21-30)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|--------|-----------------------------------------|--------------------|-------|--------|
| Strings | Longest Substring Without Repeating Characters | 2 hours | | ☐ |
| Strings | Longest Palindromic Substring | 2 hours | | ☐ |
| Strings | String to Integer (atoi) | 1.5 hours | | ☐ |
| Strings | Implement strStr() | 1 hour | | ☐ |
| Strings | Group Anagrams | 2 hours | | ☐ |
| Strings | Valid Anagram | 1 hour | | ☐ |
| Strings | Minimum Window Substring | 2 hours | | ☐ |
| Strings | Valid Palindrome | 1 hour | | ☐ |
| Strings | Longest Common Prefix | 1 hour | | ☐ |
| Strings | Count and Say | 1 hour | | ☐ |"فَإِذَا فَرَغْتَ فَانْصَبْ"
---
## Period 4: Linked Lists (Day 31-40)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|--------------|-----------------------------------------|--------------------|-------|--------|
| Linked Lists | Reverse Linked List | 1 hour | | ☐ |
| Linked Lists | Merge Two Sorted Lists | 1 hour | | ☐ |
| Linked Lists | Linked List Cycle | 1 hour | | ☐ |
| Linked Lists | Remove Nth Node From End of List | 1 hour | | ☐ |
| Linked Lists | Reorder List | 1.5 hours | | ☐ |
| Linked Lists | Remove Duplicates from Sorted List II | 1.5 hours | | ☐ |
| Linked Lists | Intersection of Two Linked Lists | 1 hour | | ☐ |
| Linked Lists | Add Two Numbers II | 1.5 hours | | ☐ |
| Linked Lists | Flatten a Multilevel Doubly Linked List | 2 hours | | ☐ |
| Linked Lists | Copy List with Random Pointer | 2 hours | | ☐ |"الكيس من دان نفسه وعمل لما بعد الموت، والعاجز من أتبع نفسه هواها وتمنى على الله."
---
## Period 5: Stacks and Queues (Day 41-50)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|--------------------|-----------------------------------------|--------------------|-------|--------|
| Stacks and Queues | Valid Parentheses | 1 hour | | ☐ |
| Stacks and Queues | Min Stack | 1 hour | | ☐ |
| Stacks and Queues | Implement Queue using Stacks | 1 hour | | ☐ |
| Stacks and Queues | Daily Temperatures | 1.5 hours | | ☐ |
| Stacks and Queues | Next Greater Element I | 1 hour | | ☐ |
| Stacks and Queues | Evaluate Reverse Polish Notation | 1.5 hours | | ☐ |
| Stacks and Queues | Simplify Path | 1.5 hours | | ☐ |
| Stacks and Queues | Design Circular Queue | 2 hours | | ☐ |
| Stacks and Queues | Decode String | 1.5 hours | | ☐ |
| Stacks and Queues | Basic Calculator II | 2 hours | | ☐ |"وَمَا تَوْفِيقِي إِلَّا بِاللَّهِ عَلَيْهِ تَوَكَّلْتُ وَإِلَيْهِ أُنِيبُ"
---
## Period 6: Trees (Day 51-60)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|--------------|---------------------------------------------|--------------------|-------|--------|
| Trees | Maximum Depth of Binary Tree | 1 hour | | ☐ |
| Trees | Validate Binary Search Tree | 1.5 hours | | ☐ |
| Trees | Symmetric Tree | 1 hour | | ☐ |
| Trees | Binary Tree Level Order Traversal | 1.5 hours | | ☐ |
| Trees | Convert Sorted Array to Binary Search Tree | 1.5 hours | | ☐ |
| Trees | Construct Binary Tree from Preorder and Inorder Traversal | 2 hours | | ☐ |
| Trees | Binary Tree Maximum Path Sum | 2 hours | | ☐ |
| Trees | Populating Next Right Pointers in Each Node | 1.5 hours | | ☐ |
| Trees | Serialize and Deserialize Binary Tree | 2 hours | | ☐ |
| Trees | Lowest Common Ancestor of a Binary Tree | 1.5 hours | | ☐ |"إن الله يحب إذا عمل أحدكم عملاً أن يتقنه."
---
## Period 7: Recursion (Day 61-70)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|----------|-----------------------------------------|--------------------|-------|--------|
| Recursion | Climbing Stairs | 1 hour | | ☐ |
| Recursion | Generate Parentheses | 1.5 hours | | ☐ |
| Recursion | Merge Two Sorted Lists | 1 hour | | ☐ |
| Recursion | Swap Nodes in Pairs | 1.5 hours | | ☐ |
| Recursion | Letter Combinations of a Phone Number | 1.5 hours | | ☐ |
| Recursion | Combinations | 1.5 hours | | ☐ |
| Recursion | Subsets | 1.5 hours | | ☐ |
| Recursion | Permutations | 2 hours | | ☐ |
| Recursion | Combination Sum | 2 hours | | ☐ |
| Recursion | Word Search | 2 hours | | ☐ |"إِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ"
---
## Period 8: Sorting and Searching (Day 71-80)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|----------------------|-----------------------------------------|--------------------|-------|--------|
| Sorting and Searching | Merge Sorted Array | 1 hour | | ☐ |
| Sorting and Searching | Search in Rotated Sorted Array | 1.5 hours | | ☐ |
| Sorting and Searching | Find Minimum in Rotated Sorted Array | 1 hour | | ☐ |
| Sorting and Searching | Kth Largest Element in an Array | 1.5 hours | | ☐ |
| Sorting and Searching | Find Peak Element | 1 hour | | ☐ |
| Sorting and Searching | Search a 2D Matrix | 1.5 hours | | ☐ |
| Sorting and Searching | Median of Two Sorted Arrays | 2 hours | | ☐ |
| Sorting and Searching | Sort Colors | 1 hour | | ☐ |
| Sorting and Searching | Top K Frequent Elements | 1.5 hours | | ☐ |
| Sorting and Searching | Find First and Last Position of Element in Sorted Array | 1.5 hours | | ☐ |"من سلك طريقًا يلتمس فيه علمًا سهل الله له به طريقًا إلى الجنة."
---
## Period 9: Dynamic Programming (Day 81-90)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|----------------------|-----------------------------------------|--------------------|-------|--------|
| Dynamic Programming | House Robber (Easy) | 1 hour | | ☐ |
| Dynamic Programming | House Robber II (Medium) | 1.5 hours | | ☐ |
| Dynamic Programming | Longest Increasing Subsequence (Medium)| 2 hours | | ☐ |
| Dynamic Programming | Coin Change (Medium) | 2 hours | | ☐ |
| Dynamic Programming | Maximum Product Subarray (Medium) | 1.5 hours | | ☐ |
| Dynamic Programming | Palindromic Substrings (Medium) | 2 hours | | ☐ |
| Dynamic Programming | Word Break (Medium) | 2 hours | | ☐ |
| Dynamic Programming | Decode Ways
(Medium) | 1.5 hours | | ☐ |
| Dynamic Programming | Edit Distance (Hard) | 2 hours | | ☐ |
| Dynamic Programming | Longest Common Subsequence (Medium) | 2 hours | | ☐ |"الْفِطْرَةُ فِي كُلِّ أَمْرٍ"
---
## Period 10: Graphs and Trees (Day 91-100)
| Topic | LeetCode Problem | Estimated Duration | Notes | Status |
|----------------------|-----------------------------------------|--------------------|-------|--------|
| Graphs and Trees | Number of Islands | 1.5 hours | | ☐ |
| Graphs and Trees | Clone Graph | 2 hours | | ☐ |
| Graphs and Trees | Course Schedule | 2 hours | | ☐ |
| Graphs and Trees | Pacific Atlantic Water Flow | 2 hours | | ☐ |
| Graphs and Trees | Word Ladder II | 2 hours | | ☐ |
| Graphs and Trees | Minimum Height Trees | 1.5 hours | | ☐ |
| Graphs and Trees | Find the Redundant Connection | 1.5 hours | | ☐ |
| Graphs and Trees | Network Delay Time | 1.5 hours | | ☐ |
| Graphs and Trees | Maximum Area of Island | 1.5 hours | | ☐ |
| Graphs and Trees | Surrounded Regions | 2 hours | | ☐ |"اللهم علمنا ما ينفعنا وانفعنا بما علمتنا"
---