Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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.

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 | | ☐ |

"اللهم علمنا ما ينفعنا وانفعنا بما علمتنا"
---