مؤشران في مصفوفة مرتبة
تحريك الطرفين إلى الداخل للوصول إلى هدف
مؤشران في مصفوفة مرتبة درس مجاني في Coding Interview Prep على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Coding Interview Prep، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
لماذا نستخدم مؤشرين
تفحص تقنية المؤشرين مصفوفةً باستخدام فهرسين بدلًا من الحلقات المتداخلة، فتحوّل كثيرًا من الأفكار ذات التعقيد O(n^2) إلى مرور واحد واضح بتعقيد O(n). 🎯
الترتيب هو الكلمة السحرية
تحتاج الطريقة التقليدية إلى مصفوفة مرتبة. فالترتيب يساعدك على الاستدلال: التحرك يمينًا يزيد القيمة، والتحرك يسارًا يقللها، ولذلك تمثل كل خطوة قرارًا حقيقيًا.
مؤشران عند الطرفين
ابدأ بمؤشر عند الطرف left ومؤشر آخر عند الطرف right. يواجه المؤشران أحدهما الآخر، وسيقلّصان المسافة بينهما تدريجيًا.
left = 0
right = len(a) - 1حرّك الطرفين إلى الداخل
في كل خطوة، حرّك مؤشرًا واحدًا فقط إلى الداخل. ويخبرك ترتيب المصفوفة بأي جانب ينبغي دفعه قليلًا للاقتراب من هدفك.
شرط الحلقة
واصل التكرار ما دام left < right. وعندما يلتقي المؤشران أو يتجاوز أحدهما الآخر، تكون قد فحصت كل زوج مفيد ويمكنك التوقف.
while left < right:
# inspect a[left] and a[right]
passاقرأ المجموع الحالي
اعتبر a[left] + a[right] مرشحك الحالي. وتخبرك مقارنته بالهدف بما إذا كنت تحتاج إلى قيمة أكبر أم أصغر بعد ذلك.
total = a[left] + a[right]أصغر من اللازم: حرّك left
إذا كان المجموع أقل من الهدف، فأنت تحتاج إلى المزيد. حرّك مؤشر left إلى اليمين باتجاه القيم الأكبر، لأن المصفوفة مرتبة تصاعديًا.
if total < target:
left += 1أكبر من اللازم: حرّك right
إذا كان المجموع أكبر من الهدف، فأنت تحتاج إلى الأقل. حرّك مؤشر right إلى اليسار باتجاه القيم الأصغر لخفض المجموع.
elif total > target:
right -= 1كل خطوة تتخلّص من عمل
تؤدي كل حركة إلى استبعاد مجموعة كاملة من الأزواج التي لا تحتاج إلى اختبارها. ولهذا يكون الفحص خطيًا بدلًا من أن يكون تربيعيًا.
لماذا تظل الطريقة صحيحة
أنت تستبعد فقط الأزواج التي لا يمكن أن تطابق الهدف، ولذلك لا تتجاوز الإجابة الصحيحة أبدًا. وهذه السلامة هي ما يجعل المؤشرين موثوقين في المسابقات.
ما بعد الطرفين
تدعم الفكرة نفسها أنواعًا مختلفة من المسائل: العكس في المكان، والتقسيم، والدمج. وعندما تتقن مؤشري الالتقاء، ستبدو هذه المسائل مألوفة جميعًا.
تحقّق سريع
أنت تفحص مصفوفة مرتبة من الطرفين بحثًا عن مجموع مستهدف.
مراجعة
يمسح المؤشران مصفوفة مرتبة من طرفيها، ويحرّك أحدهما إلى الداخل في كل خطوة ما دام left < right. إنها طريقة خطية وصحيحة، وتشكل أساسًا لكثير من الحيل. 🚀
الأسئلة الشائعة
هل درس «مؤشران في مصفوفة مرتبة» مجاني؟
نعم — نص درس «مؤشران في مصفوفة مرتبة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Coding Interview Prep، انتقل إلى CoddyKit PRO. تتضمن دورة Coding Interview Prep 4 دروس في المجموع.
ماذا ستتعلم في «مؤشران في مصفوفة مرتبة»؟
تحريك الطرفين إلى الداخل للوصول إلى هدف تتمرن على Coding Interview Prep مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Coding Interview Prep؟
لا تُشترط خبرة سابقة. Coding Interview Prep على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مؤشران في مصفوفة مرتبة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Coding Interview Prep هذا؟
نعم. كل درس في Coding Interview Prep يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مؤشران في مصفوفة مرتبة
- العثور على زوج ذي مجموع محدد
- إزالة التكرارات في مكانها
- دمج تسلسلين مرتبين