هل نجحت في اجتياز سؤال خوارزمية المقابلة؟ هل تستغرق أسئلة خوارزمية التعلم الكثير من الوقت؟ ليست مشكلتك! قبل ذلك، لم تكن هناك طريقة تعلم خوارزمية يمكن أن تكون بهذه البساطة والفعالية. يستغرق الأمر ثلاث خطوات فقط لتصبح محترفًا في الخوارزمية: الخطوة الأولى هي قراءة السؤال، والخطوة الثانية هي تشغيل الرسوم المتحركة والرجوع إلى الترجمة وفهمها. الأفكار والرموز؛ والخطوة الثالثة هي القراءة والتحليل والتلخيص؛
ينبع إنشاء تطبيق رسم بياني للرسوم المتحركة الخوارزمية من التجارب الشخصية للعديد من المبرمجين الذين غالبًا ما يجدون أنفسهم بحاجة إلى مراجعة الخوارزميات كلما قاموا بتغيير وظائفهم. تتضمن عملية إعادة النظر في هذه الخوارزميات عادةً النظر في العديد من الحلول عبر الإنترنت، والتي يشتمل الكثير منها على صور متحركة أو رسوم بيانية تخطيطية. تعد أشكال التمثيل هذه أكثر فعالية وأسرع في الفهم من النص وحده. ومع ذلك، أصبحت بعض القيود في الموارد الحالية واضحة، بما في ذلك الافتقار إلى التفاعل في الرسوم المتحركة، وعدم القدرة على تغيير البيانات عند الدراسة، والتحديات المرتبطة بإمكانية الوصول عبر الهاتف المحمول.
بدافع من الرغبة في تعزيز تجربة التعلم، التزم المطور بإنشاء 70 رسمًا متحركًا مختلفًا داخل التطبيق. الهدف الأساسي من هذا التطبيق هو أن يكون بمثابة أداة تعليمية تساعد المستخدمين على استيعاب مفاهيم الخوارزمية والتعليمات البرمجية بسرعة. على الرغم من أن التطبيق يوفر تجربة تعليمية مرئية وتفاعلية، إلا أنه لا يسمح للمستخدمين بإرسال التعليمات البرمجية أو تنفيذها؛ تظل كتابة التعليمات البرمجية على جهاز الكمبيوتر أمرًا ضروريًا للحصول على تجربة تعليمية كاملة.
عند تنظيم محتوى التطبيق، اختار المطور عدم ترتيب أسئلة الخوارزمية حسب أرقام تعريف LeetCode الخاصة به. وبدلاً من ذلك، قاموا بتصنيف الأسئلة إلى ثلاث فئات رئيسية: القوائم المرتبطة، والسلاسل، والمصفوفات، والأشجار الثنائية؛ التراجع، والخوارزميات الجشعة، والبرمجة الديناميكية، وسياسة فرق تسد؛ مع قسم منفصل للفرز. يتم تقسيم كل فئة أيضًا حسب الصعوبة - سهلة ومتوسطة وصعبة - مما يسمح للمستخدمين بالتركيز على مجالات معرفية محددة بالتسلسل مع تشجيع التعلم الشامل للمفاهيم النظرية.
يعكس التطبيق أيضًا تجارب التعلم السابقة للمطور، وخاصة التحديات التي يواجهها عند التعامل مع خوارزميات الفرز. نظرًا لأن الفرز كان يُنظر إليه في البداية على أنه موضوع صعب، فقد تم تخصيص تصنيف محدد له للمبتدئين لتسهيل الفهم الأفضل. ويهدف هذا النهج المنظم إلى مساعدة المستخدمين على التنقل بشكل منهجي عبر المواضيع المعقدة بطريقة تتوافق مع الأطر التعليمية التقليدية.
لتعزيز التفاعل بين الرسوم المتحركة والتعليمات البرمجية، يشتمل التطبيق على العديد من الميزات المدروسة. أحد الجوانب الرئيسية هو وظيفة تمييز التعليمات البرمجية، والتي تعمل على مزامنة الرسوم المتحركة مع تنفيذ التعليمات البرمجية من خلال تمييز كل سطر من التعليمات البرمجية مع تقدم الرسوم المتحركة المقابلة. بالإضافة إلى ذلك، لاستكمال العناصر المرئية، تم تضمين ميزة الترجمة لتقديم شرح موجز خلال كل خطوة من خطوات الرسوم المتحركة. يتضمن التطبيق أيضًا وظيفة التشغيل وإعادة التعيين لكل خوارزمية، مما يسمح للمستخدمين بترتيب حالات الاختبار بشكل عشوائي باستخدام زر إعادة الضبط، مما يزيد من تبسيط عملية التعلم وتعزيز مشاركة المستخدم.
لماذا تنشئ تطبيق رسم بياني للرسوم المتحركة للخوارزمية ?
مثل العديد من المبرمجين، يجب أن أستعد كثيرًا من الوقت لتحسين الخوارزمية في كل مرة أقوم فيها بتغيير الوظائف. جيد جدًا، أثناء عملية فرز الأسئلة، يجب عليك أولاً قراءة الحل. قرأت أيضًا الكثير من حلول المشكلات من كبار الشخصيات على الإنترنت، وأحب بشكل خاص قراءة تحليل الخوارزميات باستخدام الصور المتحركة أو الرسوم البيانية التخطيطية، وهو أسرع من قراءة النص. وفي هذه العملية، تم العثور أيضًا على العديد من المشكلات، مثل: الرسوم المتحركة ليست تفاعلية ولا يمكن إيقافها مؤقتًا؛ البيانات ميتة ولا يمكن تغييرها؛ ليس من المناسب الدراسة على الهاتف المحمول، وما إلى ذلك.
لقد رأيت بعض الرسوم المتحركة الجيدة في البداية، وكان لدي رغبة قوية في تنفيذها في التطبيق باستخدام الكود الأصلي عدة مرات. هذه المرة اتخذت قراري أخيرًا وأنشأت 70 رسمًا متحركًا دفعة واحدة.
أدرك أن موضع هذا التطبيق هو أداة يمكن أن تساعدنا على فهم أفكار الخوارزمية وأكوادها بسرعة، وتساعد الذاكرة، وتحسين كفاءة التعلم. ولكن هنا لا يمكنك الإرسال، ولا يمكنك تنفيذ الكود، ولا يزال يتعين كتابة الكود على الكمبيوتر لجعله يشعر بالتحسن.
لماذا لم يتم ترتيبه بترتيب leetcode الرقم؟
في الوقت الحاضر، يتم تصنيف أسئلة الخوارزمية إلى ثلاث كتل رئيسية:
- قائمة مرتبطة، سلسلة، مصفوفة، شجرة ثنائية؛
- التراجع، الجشع، البرمجة الديناميكية، فرق تسد؛
- فرز وتصنيف بشكل منفصل.
تنقسم الصعوبة تحت كل فئة إلى سهلة ومتوسطة وصعبة.
قم أولاً بتصنيف هياكل البيانات والخوارزميات بشكل منفصل، والتعلم وفقًا لنقاط المعرفة. على سبيل المثال، يمكنك التركيز على تعلم هياكل الشجرة الثنائية أو خوارزميات البرمجة الديناميكية، بحيث يمكن أن يساعد التدريب المشبع المركز على تحسين كفاءة التعلم. تأتي بنية البيانات أولاً، وتتبعها الخوارزمية، والتي يتم ترتيبها أيضًا بالترتيب الذي نتعلم به المعرفة النظرية.
من حيث الخوارزميات، يتم ترتيب أربعة أنواع حاليًا: التراجع، والجشع، والبرمجة الديناميكية، وتقسيم تسد. -conquer.
عندما تعلمت هياكل البيانات والخوارزميات منذ سنوات عديدة، تعاملت لأول مرة مع خوارزميات الفرز المختلفة. شعرت وقتها أن الفرز صعب للغاية، وأعجبت كثيرًا، لذلك قمت بعمل تصنيف فرز منفصل للمبتدئين.
أفكر في كيفية الجمع بين الرسوم المتحركة والتعليمات البرمجية وغيرها من المشكلات التفاعلية
- في عملية تعلم الخوارزميات بنفسي، غالبًا ما أفهم الأفكار، لكن لا يمكنني فهم الرموز، والعديد من الرموز في التفسيرات النصية لا تحتوي على تعليقات. رؤية هذا هو صداع كبير. لذلك، عند التفكير في التفاعل مع التطبيق، تم تصميم وظيفة تمييز التعليمات البرمجية خصيصًا، مما يعني أنه سيتم تمييز كل سطر من التعليمات البرمجية مع تقدم الرسوم المتحركة. بهذه الطريقة، يتم تنفيذ الرسوم المتحركة، ويتم تمييز الكود، ويبدو رائعًا.
- على الرغم من سهولة فهم الرسوم المتحركة، إلا أنها لا تزال بحاجة إلى بعض التوضيحات القصيرة، لذلك تم تصميم وظيفة "الترجمة" أسفل الرسوم المتحركة. في كل مرة يتم تنفيذ الخطوة المقابلة، سيتم عرض الشرح المقابل.
- تشغيل الرسوم المتحركة وإعادة ضبطها، كل صفحة خوارزمية لها وظيفة التشغيل، فكيف يتم إعداد حالات الاختبار؟ ولتبسيط مفهوم حالات الاختبار، تم تصميم زر "إعادة الضبط"، مما يعني أن حالات الاختبار عشوائية. عندما تريد تغيير مجموعة من البيانات، ما عليك سوى النقر فوق إعادة تعيين.