1- التعرف على مميزات وأهمية الـ Data Preprocessing.
2- تعلم واحد من أهم الـ Preprocessing Techniques وهو Frequency Array.
3- تعلم بعض أساسيات موضوع من موضوعات علم الـ Number Theory وهو Modular Arithmetic وطريقة توظيفه في التفكير.
الأسبوع هام جدا:
- هنعرف مفهوم جديد وهو الـ Data Preprocessing وأهميته ومدى تأثيره على الـ Complexity.
- كل Preprocessing Technique هنتعلمه هنعرف إنه بيساعدنا نجاوب على نوع معين من الأسئلة بطريقة efficient جدا غالبا في:
Constant Time O(1)
- هنتعلم خلال الأسبوع دا Technique جديد وهام جدا وإستخدامه شائع ومتكرر وهو Frequency Array.
- مهم جدا تبقى واخد بالك إن الـ Techniques اللي هتتعلمها في الغالب مش هتكون كافية لحل المسألة ولكن بتستخدمها في جزء من الحل فقط، وبالتالي هي هتساعدك إنك تفكر وتكتب كود More Efficient.
- الجزء الثاني اللي هنركز عليه خلال الأسبوع هو الـ Modular Arithmetic ودا من أهم المواضيع في الـ Number Theory والهدف إننا ناخد فكرة كويسة عنه ونعرف نوظفه في تفكيرنا، ودا بيظهر بشكل كتير في المسائل.
- لو عندنا مليون رقم والأرقام كبيرة جدا في رينج 10 أس 12 مثلا، ازاي نقدر نعمل Frequency Array تستوعب الأرقام دي؟ (احسب الـ Memory المطلوبة وشوف هل دا ممكن ولا مستحيل).
-> إجابة السؤال في الأسابيع القادمة.
ملاحظات هامة لمبرمجي C++ (بعد مشاهدة الفيديوهات):
- أكبر حد للـ array size في الـ C++ بيختلف حسب مكان الـ Declaration.
- لو عايزين نحجز array بـ size كبير بنعرفها global (قبل الـ main) ومسموح لينا نوصل لـ 100000000 (1e8) في معظم المسائل.
- لما بنعرف أي متغير global بياخد initial value حسب نوع المتغير، مثلا لو عرفت global array of integers كل العناصر هتكون بصفر مبدئيا ومش محتاج أصفرها.
الخطوة القادمة بعد مشاهدة الفيديوهات:
1- إستكمال حل مسائل الأسابيع الماضية.
2- الدخول إلى Training Group والتسجيل في Week #4 من خلال الضغط على كلمة Register ثم مواصلة خطوات التسجيل.
3- بدء حل مسائل Week #4 بالترتيب.
ملاحظات هامة:
1- المسائل متوسطة العدد ولكنها تحتاج إلى تفكير وملاحظة ولكنها ليست صعبة على الإطلاق.
2- الأسبوع ينتهي يوم الجمعة الساعة 9 مساء.
3- ستبدأ المسابقة الأسبوعية يوم الجمعة الساعة 9 مساء ومدتها ثلاث ساعات.
4- لا تنسى تحديث بيانات تقدمك في Training Sheet بشكل دوري.
5- لا تتردد في السؤال على FB Community Training Group إذا واجهتك مشكلة ما أو لم تستطع فهم سؤال ما أو أردت طلب مصادر إضافية.