مستودع بحل فيه مسائل LeetCode خطوة بخطوة بلغة C#، كجزء من تدريبي الذاتي على الـ OOP والـ Problem Solving وتقوية أساسيات الـ Data Structures & Algorithms استعدادًا لمسار Security Engineering والمنافسات البرمجية مع ICPC.
الهدف مش بس "حل المسألة"، الهدف إني:
| 🟢 Easy | 🟡 Medium | 🔴 Hard | 📈 الإجمالي |
|---|---|---|---|
| 4 / 960 | 0 / 2103 | 0 / 966 | 4 / 4029 |
| # | المسألة | المستوى | الحالة | الرابط |
|---|---|---|---|---|
| 1 | Two Sum | 🟢 Easy | ✅ Solved | Solution |
| 2 | Sqrt(x) | 🟢 Easy | ✅ Solved | Solution |
| 3 | Palindrome Number | 🟢 Easy | ✅ Solved | Solution |
| 4 | Roman to Integer | 🟢 Easy | ✅ Solved | Solution |
🕐 بيتحدّث أول بأول مع كل مسألة جديدة أحلها.
📦 LeetCode-CSharp
┣ 📂 Easy
┃ ┣ 📜 001_TwoSum.cs
┃ ┣ 📜 009_PalindromeNumber.cs
┃ ┣ 📜 013_RomanToInteger.cs
┃ ┗ 📜 069_SqrtX.cs
┣ 📂 Medium
┣ 📂 Hard
┣ 📂 Notes
┃ ┗ 📜 complexity-cheatsheet.md
┗ 📜 README.md
كل حل بيتكتب بالشكل ده:
/// <summary>
/// LeetCode 1 - Two Sum
/// Time Complexity: O(n)
/// Space Complexity: O(n)
/// </summary>
public class Solution
{
public int[] TwoSum(int[] nums, int target)
{
var map = new Dictionary<int, int>();
for (int i = 0; i < nums.Length; i++)
{
int complement = target - nums[i];
if (map.ContainsKey(complement))
return new int[] { map[complement], i };
map[nums[i]] = i;
}
throw new ArgumentException("No solution found.");
}
}
"الاستمرارية مش الكمال هي اللي بتبني الاحتراف."