{"id":20849746,"url":"https://github.com/mahmoodhamdi/leet_code_100_days","last_synced_at":"2025-08-18T08:08:39.378Z","repository":{"id":240491451,"uuid":"802771420","full_name":"mahmoodhamdi/leet_code_100_days","owner":"mahmoodhamdi","description":"LeetCode 100 Days Challenge: Improve problem-solving skills by tackling LeetCode problems over 100 days.","archived":false,"fork":false,"pushed_at":"2024-07-27T03:22:42.000Z","size":62,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-12T16:23:44.525Z","etag":null,"topics":["challenge","data-structures","data-structures-and-algorithms","leetcode","leetcode-dart","solving-algorithm"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mahmoodhamdi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-05-19T08:17:35.000Z","updated_at":"2025-04-13T03:58:18.000Z","dependencies_parsed_at":"2024-07-27T04:40:59.234Z","dependency_job_id":null,"html_url":"https://github.com/mahmoodhamdi/leet_code_100_days","commit_stats":null,"previous_names":["mahmoodhamdi/leet_code_100_days"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mahmoodhamdi/leet_code_100_days","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fleet_code_100_days","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fleet_code_100_days/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fleet_code_100_days/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fleet_code_100_days/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mahmoodhamdi","download_url":"https://codeload.github.com/mahmoodhamdi/leet_code_100_days/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mahmoodhamdi%2Fleet_code_100_days/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270962391,"owners_count":24675965,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-18T02:00:08.743Z","response_time":89,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["challenge","data-structures","data-structures-and-algorithms","leetcode","leetcode-dart","solving-algorithm"],"created_at":"2024-11-18T03:06:33.573Z","updated_at":"2025-08-18T08:08:39.353Z","avatar_url":"https://github.com/mahmoodhamdi.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LeetCode 100 Days Challenge\n\nWelcome 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.\n\n---\n\n## Introduction and Setup\n\n- **Topic**: Account created, explore site\n- **Estimated Duration**: 1 hour\n- **Status**: ☑️\n\n---\n\n## Period 1: Basic Programming (Day 1-10)\n\n| Topic              | LeetCode Problem                  | Estimated Duration | Notes | Status |\n|--------------------|-----------------------------------|--------------------|-------|--------|\n| 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) | ☑️     |\n| Basic Programming  | Add Two Numbers                   | 1.5 hours          |       | ☐      |\n| Control Structures | Palindrome Number                 | 1 hour             | This approach avoids string manipulation and directly works with the number itself, making it more efficient. | ☑️      |\n| Control Structures | Fizz Buzz                         | .25 hour           | Very basic approach | ☑️      |\n| Control Structures | Roman to Integer                  | 1 hour             | Use a single-character map for Roman numerals and check the next character directly in the loop | ☑️      |\n| 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. | ☑️      |\n| Control Structures | String to Integer (atoi)          | 1.5 hours          | Not fully understood | ☑️      |\n| Basic Programming  | Reverse Integer                   | 1 hour             | Use modulus operator instead of `.toString()` | ☑️      |\n| Control Structures | Valid Parentheses                 | 1 hour             | Define a map for matching pairs of parentheses to reduce number checks | ☑️      |\n\n\"وَفِي السَّمَاءِ رِزْقُكُمْ وَمَا تُوعَدُونَ\"\n\n---\n\n## Period 2: Arrays (Day 11-20)\n\n| Topic | LeetCode Problem                        | Estimated Duration | Notes | Status |\n|-------|-----------------------------------------|--------------------|-------|--------|\n| Arrays | Remove Duplicates from Sorted Array    | 1 hour             | Reread the problem in details | ☑️       |\n| Arrays | Best Time to Buy and Sell Stock        | 1 hour             |       | ☑️      |\n| Arrays | Contains Duplicate                     | .25 hour           | Use set to store the numbers to reduce the time complexity of the algorithm to O(n) | ☑️      |\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. | ☑️      |\n| Arrays | Maximum Subarray                       | 0.5 hours          |       | ☑️      |\n| Arrays | Merge Intervals                        | 2 hours            | Sort intervals by start time. Merge overlapping intervals by updating the end time of the last merged interval. | ☑️      |\n| Arrays | Insert Interval                        | 2 hours            | Merge all overlapping intervals with the new interval using `math.max()` and `math.min()` | ☑️      |\n| Arrays | 3Sum                                   | 2 hours            | Array Two Pointers Sorting | ☑️      |\n| 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 | ☑️      |\n| Arrays | Rotate Image                           | 1.5 hours          | Array Math Matrix | ☑️      |\n\n\"احرص على ما ينفعك، واستعن بالله ولا تعجز.\"\n\n---\n\n## Period 3: Strings (Day 21-30)\n\n| Topic  | LeetCode Problem                        | Estimated Duration | Notes | Status |\n|--------|-----------------------------------------|--------------------|-------|--------|\n| Strings | Longest Substring Without Repeating Characters | 2 hours    |       | ☐      |\n| Strings | Longest Palindromic Substring          | 2 hours            |       | ☐      |\n| Strings | String to Integer (atoi)               | 1.5 hours          |       | ☐      |\n| Strings | Implement strStr()                     | 1 hour             |       | ☐      |\n| Strings | Group Anagrams                         | 2 hours            |       | ☐      |\n| Strings | Valid Anagram                          | 1 hour             |       | ☐      |\n| Strings | Minimum Window Substring               | 2 hours            |       | ☐      |\n| Strings | Valid Palindrome                       | 1 hour             |       | ☐      |\n| Strings | Longest Common Prefix                  | 1 hour             |       | ☐      |\n| Strings | Count and Say                          | 1 hour             |       | ☐      |\n\n\"فَإِذَا فَرَغْتَ فَانْصَبْ\"\n\n---\n\n## Period 4: Linked Lists (Day 31-40)\n\n| Topic        | LeetCode Problem                        | Estimated Duration | Notes | Status |\n|--------------|-----------------------------------------|--------------------|-------|--------|\n| Linked Lists | Reverse Linked List                     | 1 hour             |       | ☐      |\n| Linked Lists | Merge Two Sorted Lists                  | 1 hour             |       | ☐      |\n| Linked Lists | Linked List Cycle                       | 1 hour             |       | ☐      |\n| Linked Lists | Remove Nth Node From End of List        | 1 hour             |       | ☐      |\n| Linked Lists | Reorder List                            | 1.5 hours          |       | ☐      |\n| Linked Lists | Remove Duplicates from Sorted List II   | 1.5 hours          |       | ☐      |\n| Linked Lists | Intersection of Two Linked Lists        | 1 hour             |       | ☐      |\n| Linked Lists | Add Two Numbers II                      | 1.5 hours          |       | ☐      |\n| Linked Lists | Flatten a Multilevel Doubly Linked List | 2 hours            |       | ☐      |\n| Linked Lists | Copy List with Random Pointer           | 2 hours            |       | ☐      |\n\n\"الكيس من دان نفسه وعمل لما بعد الموت، والعاجز من أتبع نفسه هواها وتمنى على الله.\"\n\n---\n\n## Period 5: Stacks and Queues (Day 41-50)\n\n| Topic              | LeetCode Problem                        | Estimated Duration | Notes | Status |\n|--------------------|-----------------------------------------|--------------------|-------|--------|\n| Stacks and Queues  | Valid Parentheses                       | 1 hour             |       | ☐      |\n| Stacks and Queues  | Min Stack                               | 1 hour             |       | ☐      |\n| Stacks and Queues  | Implement Queue using Stacks            | 1 hour             |       | ☐      |\n| Stacks and Queues  | Daily Temperatures                      | 1.5 hours          |       | ☐      |\n| Stacks and Queues  | Next Greater Element I                  | 1 hour             |       | ☐      |\n| Stacks and Queues  | Evaluate Reverse Polish Notation        | 1.5 hours          |       | ☐      |\n| Stacks and Queues  | Simplify Path                           | 1.5 hours          |       | ☐      |\n| Stacks and Queues  | Design Circular Queue                   | 2 hours            |       | ☐      |\n| Stacks and Queues  | Decode String                           | 1.5 hours          |       | ☐      |\n| Stacks and Queues  | Basic Calculator II                     | 2 hours            |       | ☐      |\n\n\"وَمَا تَوْفِيقِي إِلَّا بِاللَّهِ عَلَيْهِ تَوَكَّلْتُ وَإِلَيْهِ أُنِيبُ\"\n\n---\n\n## Period 6: Trees (Day 51-60)\n\n| Topic        | LeetCode Problem                            | Estimated Duration | Notes | Status |\n|--------------|---------------------------------------------|--------------------|-------|--------|\n| Trees        | Maximum Depth of Binary Tree                | 1 hour             |       | ☐      |\n| Trees        | Validate Binary Search Tree                 | 1.5 hours          |       | ☐      |\n| Trees        | Symmetric Tree                              | 1 hour             |       | ☐      |\n| Trees        | Binary Tree Level Order Traversal           | 1.5 hours          |       | ☐      |\n| Trees        | Convert Sorted Array to Binary Search Tree  | 1.5 hours          |       | ☐      |\n| Trees        | Construct Binary Tree from Preorder and Inorder Traversal | 2 hours |       | ☐      |\n| Trees        | Binary Tree Maximum Path Sum                | 2 hours            |       | ☐      |\n| Trees        | Populating Next Right Pointers in Each Node | 1.5 hours          |       | ☐      |\n| Trees        | Serialize and Deserialize Binary Tree       | 2 hours            |       | ☐      |\n| Trees        | Lowest Common Ancestor of a Binary Tree     | 1.5 hours          |       | ☐      |\n\n\"إن الله يحب إذا عمل أحدكم عملاً أن يتقنه.\"\n\n---\n\n## Period 7: Recursion (Day 61-70)\n\n| Topic    | LeetCode Problem                        | Estimated Duration | Notes | Status |\n|----------|-----------------------------------------|--------------------|-------|--------|\n| Recursion | Climbing Stairs                        | 1 hour             |       | ☐      |\n| Recursion | Generate Parentheses                   | 1.5 hours          |       | ☐      |\n| Recursion | Merge Two Sorted Lists                 | 1 hour             |       | ☐      |\n| Recursion | Swap Nodes in Pairs                    | 1.5 hours          |       | ☐      |\n| Recursion | Letter Combinations of a Phone Number  | 1.5 hours          |       | ☐      |\n| Recursion | Combinations                           | 1.5 hours          |       | ☐      |\n| Recursion | Subsets                                | 1.5 hours          |       | ☐      |\n| Recursion | Permutations                           | 2 hours            |       | ☐      |\n| Recursion | Combination Sum                        | 2 hours            |       | ☐      |\n| Recursion | Word Search                            | 2 hours            |       | ☐      |\n\n\"إِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ\"\n\n---\n\n## Period 8: Sorting and Searching (Day 71-80)\n\n| Topic                | LeetCode Problem                        | Estimated Duration | Notes | Status |\n|----------------------|-----------------------------------------|--------------------|-------|--------|\n| Sorting and Searching | Merge Sorted Array                     | 1 hour             |       | ☐      |\n| Sorting and Searching | Search in Rotated Sorted Array         | 1.5 hours          |       | ☐      |\n| Sorting and Searching | Find Minimum in Rotated Sorted Array   | 1 hour             |       | ☐      |\n| Sorting and Searching | Kth Largest Element in an Array        | 1.5 hours          |       | ☐      |\n| Sorting and Searching | Find Peak Element                      | 1 hour             |       | ☐      |\n| Sorting and Searching | Search a 2D Matrix                     | 1.5 hours          |       | ☐      |\n| Sorting and Searching | Median of Two Sorted Arrays            | 2 hours            |       | ☐      |\n| Sorting and Searching | Sort Colors                            | 1 hour             |       | ☐      |\n| Sorting and Searching | Top K Frequent Elements                | 1.5 hours          |       | ☐      |\n| Sorting and Searching | Find First and Last Position of Element in Sorted Array | 1.5 hours |       | ☐      |\n\n\"من سلك طريقًا يلتمس فيه علمًا سهل الله له به طريقًا إلى الجنة.\"\n\n---\n\n## Period 9: Dynamic Programming (Day 81-90)\n\n| Topic                | LeetCode Problem                        | Estimated Duration | Notes | Status |\n|----------------------|-----------------------------------------|--------------------|-------|--------|\n| Dynamic Programming   | House Robber (Easy)                    | 1 hour             |       | ☐      |\n| Dynamic Programming   | House Robber II (Medium)               | 1.5 hours          |       | ☐      |\n| Dynamic Programming   | Longest Increasing Subsequence (Medium)| 2 hours            |       | ☐      |\n| Dynamic Programming   | Coin Change (Medium)                   | 2 hours            |       | ☐      |\n| Dynamic Programming   | Maximum Product Subarray (Medium)      | 1.5 hours          |       | ☐      |\n| Dynamic Programming   | Palindromic Substrings (Medium)        | 2 hours            |       | ☐      |\n| Dynamic Programming   | Word Break (Medium)                    | 2 hours            |       | ☐      |\n| Dynamic Programming   | Decode Ways\n (Medium)                   | 1.5 hours          |       | ☐      |\n| Dynamic Programming   | Edit Distance (Hard)                  | 2 hours            |       | ☐      |\n| Dynamic Programming   | Longest Common Subsequence (Medium)   | 2 hours            |       | ☐      |\n\n\"الْفِطْرَةُ فِي كُلِّ أَمْرٍ\"\n\n---\n\n## Period 10: Graphs and Trees (Day 91-100)\n\n| Topic                | LeetCode Problem                        | Estimated Duration | Notes | Status |\n|----------------------|-----------------------------------------|--------------------|-------|--------|\n| Graphs and Trees      | Number of Islands                      | 1.5 hours          |       | ☐      |\n| Graphs and Trees      | Clone Graph                            | 2 hours            |       | ☐      |\n| Graphs and Trees      | Course Schedule                        | 2 hours            |       | ☐      |\n| Graphs and Trees      | Pacific Atlantic Water Flow            | 2 hours            |       | ☐      |\n| Graphs and Trees      | Word Ladder II                         | 2 hours            |       | ☐      |\n| Graphs and Trees      | Minimum Height Trees                   | 1.5 hours          |       | ☐      |\n| Graphs and Trees      | Find the Redundant Connection          | 1.5 hours          |       | ☐      |\n| Graphs and Trees      | Network Delay Time                     | 1.5 hours          |       | ☐      |\n| Graphs and Trees      | Maximum Area of Island                 | 1.5 hours          |       | ☐      |\n| Graphs and Trees      | Surrounded Regions                     | 2 hours            |       | ☐      |\n\n\"اللهم علمنا ما ينفعنا وانفعنا بما علمتنا\"\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmoodhamdi%2Fleet_code_100_days","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmahmoodhamdi%2Fleet_code_100_days","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmahmoodhamdi%2Fleet_code_100_days/lists"}