أتحسن في حل المشكلات البرمجية إزاي؟
الفكرة الأساسية
تدرب على تحويل السؤال إلى اتفاق واضح، ثم اختر طريقة واختبر أنها تحقق المطلوب. أحيانًا المشكلة ليست أمرًا جديدًا في اللغة، بل اختلاف فهمك للمخرج المطلوب.
مثلًا: «هات ثاني أكبر رقم». هل تكرار أكبر رقم يُحسب مرة ثانية، أم نريد قيمة مختلفة عنه؟
حدد المسألة بدقة
في هذا التمرين نريد ثاني أكبر عدد صحيح مختلف داخل مجموعة محدودة. لو لا يوجد عددان مختلفان على الأقل، نوضح عدم وجود نتيجة. المدخلات قد تكون سالبة أو مكررة.
| المدخلات | النتيجة | السبب |
|---|---|---|
| 9، 3، 9، 7 | 7 | تكرار 9 ليس قيمة مختلفة |
| 4، 4 | لا توجد نتيجة | قيمة مختلفة واحدة |
| -8، -2، -5 | -5 | نفس قاعدة الترتيب مع السالب |
| 6 | لا توجد نتيجة | لا توجد قيمة ثانية |
هذه الأمثلة جزء من تعريف السؤال، وليست مجرد اختبار أخير.
ابدأ بطريقة واضحة
يمكن ترتيب نسخة من البيانات، ثم المرور من الطرف الأكبر حتى تجد قيمة مختلفة. احتفظ بالأصل إذا كان عدم تغييره شرطًا.
الطريقة مفهومة، لكنها تحتاج تكلفة فرز ونسخ. بعد التأكد من صحتها، ادرس مرورًا واحدًا يحتفظ بأكبر وثاني أكبر قيمة مختلفة حتى اللحظة.
لا تختر قيمة بداية وهمية
تهيئة المرشحين بصفر تفشل مع قائمة كلها سالبة. واستخدام أصغر عدد صحيح يحتاج انتباهًا إذا كان هذا العدد نفسه مدخلًا صحيحًا.
مثل وجود المرشح بصورة مستقلة عن قيمته. أثناء المرور، تجاهل مساواة الأكبر، وحدث المرشحين عندما يصل أكبر جديد، وحدث الثاني عندما تصل قيمة مناسبة أقل من الأكبر.
اكتب الحالات بالكلام قبل تحويلها إلى شروط. التعبير الأقصر ليس بالضرورة أوضح أو أصح.
ابحث عن مثال يكشف الخطأ
جرّب قيمتين متساويتين، وأكبر قيمة تأتي في النهاية، وقائمة سالبة بالكامل. كل حالة تختبر افتراضًا مختلفًا.
عند الفشل، ابحث عن أول خطوة أصبحت فيها الحالة المحفوظة خاطئة. أصلح القاعدة بدل إضافة استثناء عشوائي للمثال وحده.
روتين تطبيق
احتفظ لكل مسألة بتعريف المطلوب وحل بسيط وأمثلة مضادة وتحسين واحد مع تكلفته. اشرح التحسين قبل كتابة الكود.
مسار C ثم C++ ثم هياكل البيانات والخوارزميات في جمال تك يقدم موضوعات تدعم هذا العمل. تقدمك يظهر عندما تختار طريقة لسؤال جديد وتشرح سبب صحتها، لا عندما تعيد حلًا مألوفًا فقط.
مراجع وتفاصيل الكورسات
المراجع التالية تساعد على متابعة التعلم. الأمثلة والتمارين في هذا المقال تعليمية، وتفاصيل الكورسات تُراجع من الكتالوج.