مسار تعلمي لحل المشكلات
السلام عليكم ورحمة الله وبركاته
الفهرس
- المقدمة
- C++ Basics
- Web Sites
- Sheets
- STL
- Algorithms
- Complexity
- Overflow Problem
- Two Pointers
- Prefix Sum
- Binary Search
- Modular
- Sheet Assiut for STL & Algorithms
- Structured Binding
- Number Theory
- Recursion
- Graph Theory
- Complete course
- Intro
- Representation
- DFS
- Arrival and Departure time in vertices in DFS
- Types of edges in DFS
- Detect cycle in directed graph
- Topological Sorting (DAG)
- Longest Path on tree (DFS)
- BFS
- Grid (maze or 2d cell)
- Bipartite graph
- Bridges (cut edge) in graph
- Articulation point
- Strongly connected component
- Minimum spanning tree
- DP
المقدمة
هذه كانت مجرد عمل شخصي لي لتجميع المعلومات والمواقع والفيديوهات التي استفدت منها شخصيا
تنبيه مهم جدًا
- هذه كانت تجميعة خاصة ليا أنا شخصيًا واحببت ان اشاركها معكم لا اكثر
- لا اقول انه مسار بل هي مجرد تجميعة وملاحظات شخصية كما قلت وأنت لست مرغمًا على اتباعها بحذافيرها بالطبع
- اتمنى ان تزيد عليها وتجد مصادر أخرى وان تعتمد على هذه التجميعة كمصدر ثانوي لك (مصدر من مصادرك الأخرى للتعلم)
- ان وجدت مصدر او فيديو او مقالة جيدة ارجوا ان تشاركها معي لكي اضعها
اخر اضافاتي في هذه التجميعة كانت في 2020/8/26
وقررت ان شاركها للعامة في 2022/1/1
اي اقتراح اضافي من قبل الناس أي ليست ضمن تجميعتي الاصلية سيتم وضع علامة
+
قبلها
C++ Basics
Adel Nasim (متوسط)
Mohamed El Desouki (متوسط - اكاديمي)
Mostafa Saad (متقدم)
Mostafa Saad (لصغار السن والمبتدئيين)
قبل ان تبدا عليك ان تعرف انك ان وقفت في مشكلة ما فيجب ان تبحث بنفسك وتقرأ مقالات وفيديوهات ولا تعتمد علي مصدر واحد ابدا
Web Sites
هذا أعظم موقع للمقالات يجب ان تعتاد عليه وتقرأ مقالات من الآن
لا يوجد سؤال الا وعليه إجاباته
في مواقع أخرى فيها مشاكل مميزة لل interview مشاكل متنوعة تحتاج إلى انك تفكر باحسن حل عندك مثل مثل leetcode و codesignal و hackerrank
هنا ستجد اساليب مميزة للتعلم
https://leetcode.com/explore/learn
Sheets
شيت اسيوط يعد من أفضل الأشياء التي قد تبدأ فيها حل فيه لحد ما تتمكن وتعتاد علي الحل والمشاكل
بعد ما تشعر أن المشاكل أصبحت سهلة وتمكنت في اللغة وحل المشاكل بها فابدا بـ شيت مصطفى سعد
حاول ان تجعل شيت مصطفى سعد الروتين اليومي لك بمعنى حل مسألتين A كل يوم
هذه خارطة طريق المهندس محمد أيمن لحل المشكلات
STL
الـ STL هي Built in datastructre ستفيدك جدا في حل المشاكل المتقدمة وستفتح تفكيرك في استخدام افضل structure ووسيلة لحل المشاكل
ركز على (vector, Pair, Set, Map) في البداية
STL Functions
اهم Datastructre لديك هم الـ vector, pair, set, map فاجعلهم اوليتك لكن هذا لا يعني أن تهمل الباقي حين تتعلم الـ BigO ستطيع المقارنة والاختيار مابين stL المختلفة
من المهم جدا أن تأخد كورس Datastructre لتعرف كيف يتم بناء الـ Datastructre لان هذا سيسهل عليك اشياء كثيرة وهتفهم الـ STL بشكل أفضل
وهناك اشياء من الصعب أن تفهمها أو تحلها الا من خلال معرفة كيف تم بناء الـ STL من الداخل
حاول ان تحل الآن كل يوم 4 مشاكل A من شيت مصطفى سعد ,وانظر هل ستستطيع ان تحل مشكلة B ؟
Algorithms
انت مع كل موضوع او شيء ستتعلمه، ستتعلم الخوارزمات الخاصة بها فالخورزمات مهمة لأنها ستساعدك في حل المشكلة باحسن وسيلة ممكنة وأقل تكلفة سواء كسرعة او كمساحة
اهم شيء تتعلم كيف تحسب الـ BigO الخاصة بالكود لكي تستطيع أن تختار افضل خوارزمية واحسن حل للمشكلة
Complexity
Muhammed Afifi #1
Muhammed Afifi #2
Adel Nasim
وهذا الفيديو سيشرح لك مشكلة شائعة ممكن تواجهك وكيفية التغلب عليها
Overflow Problem
Two Pointers
Prefix Sum
Binary Search
Upper bound & Lower bound
https://codingblocks.com/resources/binary-search-upper-lower-bound/
Built-in Functions
Modular
Sheet Assiut for STL & Algorithms
https://codeforces.com/group/91LhUEgb6Y/contests
Structured Binding
https://skebanga.github.io/structured-bindings/
Number Theory
Recursion
Graph Theory
Complete course
WilliamFiset
Code NCode #1
+ Code NCode #2
يمكنك متابعتهما بالتزامن مع باقي الفيديوهات المرفقة
الروابط المرفقة هى التي شاهدتنا بنفسي لا اكثر
Intro
Code NCode
WilliamFiset #1
WilliamFiset #2
Representation
DFS
WilliamFiset #1
WilliamFiset #2
Code NCode #1
Code NCode #2
Muhammed Afifi #1
Muhammed Afifi #2
Arrival and Departure time in vertices in DFS
https://www.techiedelight.com/arrival-departure-time-vertices-dfs/
معلومة: ان اردنا معرفة هل الجراف متصل ام لا نطبق المعادلة التالية نمسك أول عقدة لو كان وقت البداية يساوي 0 ووقت النهاية يساوي (عدد العقد * 2) - 1
check first Node
if Arrival = 0 and Departure = Nodes*2 - 1
then the graph is Connected
Types of edges in DFS
https://www.techiedelight.com/types-edges-involved-dfs-relation/
https://www.geeksforgeeks.org/tree-back-edge-and-cross-edges-in-dfs-of-graph/
Jenny
Path X -> Y
Back Edge :
if Arrival of Y < Arrival of X
then there is a path from Y to X
Cross Edge :
if Arrival of Y < Arrival of X
then there is NO path from Y to X
Forward Edge :
if Arrival of X < Arrival of Y
then there is a path from X to Y
The Code
by color: https://ideone.com/wjnbDG
by arrival & departure : https://ideone.com/vt8RQE
Detect cycle in directed graph
https://www.geeksforgeeks.org/detect-cycle-in-a-graph/
GeeksforGeeks
GeeksforGeeks using coloring method
Jenny
https://www.geeksforgeeks.org/detect-cycle-direct-graph-using-colors/
https://codeforces.com/blog/entry/64903
The Code
with recursion : https://ideone.com/QIw2vh
without recursion : https://ideone.com/xOyU65
Topological Sorting (DAG)
https://www.techiedelight.com/topological-sorting-dag/
The Code
https://ideone.com/ymaLbX
https://ideone.com/wPnSgu
Longest Path on tree (DFS)
SolverToBe #1
SolverToBe #2
The Code
https://ideone.com/1d1rTy
https://ideone.com/Ell6mN
https://ideone.com/RasHoX
BFS
WilliamFiset
Jenny only first 8 minutes
Muhammed Afifi
Mostafa Saad
The Code
https://ideone.com/j2w2Qm
Grid (maze or 2d cell)
SolverToBe
Back To Back SWE
WilliamFiset
https://www.geeksforgeeks.org/shortest-distance-two-cells-matrix-grid/
Bipartite graph
https://www.techiedelight.com/determine-given-graph-bipartite-graph-using-dfs/
https://www.geeksforgeeks.org/check-if-a-given-graph-is-bipartite-using-dfs/
The Code
https://ideone.com/pWyN1a
Bridges (cut edge) in graph
https://www.geeksforgeeks.org/bridge-in-a-graph/
https://cp-algorithms.com/graph/bridge-searching.html
Articulation point
https://www.geeksforgeeks.org/articulation-points-or-cut-vertices-in-a-graph/
https://cp-algorithms.com/graph/cutpoints.html
(2-Edge Connectivity in a Graph)
https://www.techiedelight.com/2-edge-connectivity-graph/
(2-Node Connectivity in a Graph)
https://www.techiedelight.com/2-vertex-connectivity-graph/
Strongly connected component
https://www.techiedelight.com/check-given-graph-strongly-connected-not/
https://www.geeksforgeeks.org/strongly-connected-components/
https://cp-algorithms.com/graph/strongly-connected-components.html
Minimum spanning tree
DP
+ Errichto
+ Mostafa Saad
+ Code NCode #1
+ Code NCode #2