Graph Theory Algorithms for Competitive Programming

20h 12m 42s
English
Paid

Course description

Welcome to Graph Algorithms for Competitive Coding - the most detailed Specialisation in Graph Theory for Competitive Programmers, Software Engineers & Computer Science students! Graphs is quite an important topic for software engineers, both for academics & online competitions and for solving real life challenges.

Read more about the course

Graph algorithms form the very fundamentals of many popular applications like - Google Maps, social media apps like Facebook, Instagram, Quora, LinkedIn, Computer Vision applications such as image segmentation, resolving dependencies while compile time, vehicle routing problems in supply chain and many more.

 This course provides a detailed overview of Graph Theory algorithms in computer science, along with hands on implementation of all the algorithms in C++. Not just that you will get 80+ competitive coding questions, to practice & test your skills!

This comprehensive course is taught by Prateek Narang & Apaar Kamal, who are Software Engineers at Google and have taught over thousands of students in competitive programming over last 5+ years. This course is worth thousands of dollars, but Coding Minutes is providing you this course to you at a fraction of its original cost! This is action oriented course, we not just delve into theory but focus on the practical aspects by building implementing algorithms & solving problems. With over 95+ high quality video lectures, easy to understand explanations this is one of the most detailed and robust course for Graph Algorithms ever created.

Course starts very basics with how to store and represent graphs on a computer, and then dives into popular algorithms & techniques for problem solving. The course is divided into two parts.

Part-I Graph Theory Essentials

  • Graph Representations

  • Popular Traversals - BFS & DFS

  • Cycle Detection - Weighted & Unweighted Graphs

  • Topological Ordering & Directed Acyclic Graphs

  • Disjoint Set Union, Path Compression & Union by Rank

  • Minimum Spanning Trees - Prim's & Kruskal's

  • Shortest Paths - BFS, Dijkstra's, Bellman Ford, Floyd Warshall

  • Travelling Salesman Problem, Min Cost Hamiltonian Cycle


Part-II Graph Theory Advanced

  • Flood Fill

  • Multisource BFS

  • DFS & Backedges

  • SCC's & Kosaraju's Algorithm

  • Euler Tour

  • LCA

  • Trees

  • Articulation Points & Bridges

  • Network Flow

The part-II is recommended for programmers who want to deep dive into Competitive Programming & take part in contests. For most students part-I is good enough to understand the most fundamental concepts and techniques in graphs!

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 94 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online Graph Theory Algorithms for Competitive Programming

0:00
/
#1: Course Orientation!

All Course Lessons (94)

#Lesson TitleDurationAccess
1
Course Orientation! Demo
07:03
2
Graphs Introduction
12:05
3
Graph Applications
05:49
4
Graph Key Terms
09:08
5
Adjacency List Representation
08:43
6
Adjacency List Representation with Node Class
09:09
7
Breadth First Search
06:44
8
BFS Code
07:16
9
BFS Shortest Path
04:31
10
BFS Shortest Path Code
06:11
11
Snakes and Ladder Solution
08:25
12
DFS Concept
04:19
13
DFS Code
05:41
14
Largest Island Solution
12:31
15
Cycle Detection in Undirected Graph
03:35
16
Cycle Detection in Undirected Graph Code
08:59
17
Directed Graph - Cycle Detection
08:56
18
Directed Graph - Cycle Detection Code
12:47
19
Bipartite Graph
07:15
20
Bipartite Graph Code
12:26
21
Directed Acyclic Graph & Topological Ordering
04:35
22
Topological Sort Algorithm
04:51
23
Topological Ordering BFS Code
05:56
24
Toplogical Order using DFS
04:52
25
Topological Ordering using DFS Code
05:07
26
Disjoint Set Union Introduction
04:20
27
DSU Data Structure - Union & Find Ops
09:02
28
DSU Data Structure
07:07
29
DSU Implementation
13:17
30
Union by Rank
10:16
31
Path Compression Optimisation
08:39
32
DSU Dry Run
13:15
33
Introduction to Minimum Spanning Trees!
03:38
34
Prim's Algorithm
19:33
35
Prim's Code
18:43
36
Kruskal's Algorithm
08:59
37
Kruskal's Code
13:38
38
Introduction to Shortest Path Algorithms
07:53
39
Dijkshtra's Algorithm
09:12
40
Dijkshtra's Algorithm Code
14:55
41
Bellman Ford Algorithm
33:09
42
Bellman Ford Code
09:12
43
Floyd Warshall
29:35
44
Floyd Warshall Code
08:38
45
Solution - Shortest Path in Grid!
12:21
46
Travelling Salesman Problem
12:04
47
Travelling Salesman Intution
03:43
48
TSP Brute Force
12:26
49
TSP DP + Bitmasking
02:44
50
Flood Fill Introduction
05:32
51
Number of Islands
18:19
52
Coloring Islands
07:01
53
Biggest Island
03:30
54
Make Largest island
19:01
55
Introduction to Multi Source BFS
12:12
56
Problem on Multi Source BFS
19:46
57
Bonus Problem on Multi Source BFS
15:51
58
0/1 BFS
07:41
59
Introduction to DFS tree and Backedges
09:07
60
DFS Tree and backedges in Undirected graph
16:41
61
DFS Tree and Backedges in Directed and Undirectde graphs
23:12
62
Print cycle in a graph
10:04
63
Introduction and definitions
12:27
64
Discovered Time
11:33
65
Lowest Time or Low Link
24:48
66
Algorithm
19:20
67
Coding the Algorithm
17:18
68
Introduction to Topological Order and Strongly Connected Components
18:42
69
Algorithm and Code to find Topological Ordering
20:43
70
Introduction to Strongly Connected Component
09:51
71
Condensed Component Graph
12:51
72
Kosaraju Algorithm for Strongly Connected Component
30:06
73
Kosaraju Algorithm for Strongly Connected Component Code
11:47
74
Introduction and properties of trees
24:27
75
DFS on trees
08:03
76
Print all ancestors in a tree
08:36
77
Introduction
11:24
78
Applications
21:51
79
Code
13:04
80
Introduction
12:37
81
LCA (Brute Force)
16:12
82
LCA using Binary Lifting
38:43
83
Introduction and brute force
15:52
84
Approach to re root the tree
20:21
85
Code for re rooting of the tree
11:13
86
Introduction to Network
04:13
87
Introduction to Maximum Flow in a Network
08:40
88
Residual Networks and Augmenting Paths
26:27
89
Ford-Fulkerson and Edmond-Karp Algorithm
26:24
90
Dinic's Algorithm
25:19
91
Dinic's Algorithm Code
33:21
92
Applications of Max Flow as Maximum Bipartite Matching
23:36
93
Board Game
12:12
94
Board Game Code
19:31

Unlock unlimited learning

Get instant access to all 93 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Master the Lua Scripting Language

Master the Lua Scripting Language

Sources: Gustavo Pezzi
This course offers a complete immersion into the Lua programming language - one of the most popular scripting languages in the world. Lua is fast, compact...
13 hours 59 minutes 27 seconds
Ultimate C++ Part 3: Advanced

Ultimate C++ Part 3: Advanced

Sources: codewithmosh (Mosh Hamedani)
To take this course, you should have watched the first two parts or have a thorough understanding of the concepts covered there. You should be able to write basic C++ programs a...
3 hours 41 minutes 57 seconds
Ultimate C++ Part 2: Intermediate

Ultimate C++ Part 2: Intermediate

Sources: codewithmosh (Mosh Hamedani)
Enhance your C++ skills by mastering arrays, pointers, and other key concepts. Ideal for those with basic knowledge from part one. Course by Mosh Hamedani.
3 hours 37 minutes 48 seconds
Building a Parser from scratch

Building a Parser from scratch

Sources: udemy, Dmitry Soshnikov
Parsing or syntactic analysis is one of the first stages in designing and implementing a compiler. A well-designed syntax of your programming language is a big
2 hours 31 minutes 11 seconds
NES Programming with 6502 Assembly

NES Programming with 6502 Assembly

Sources: Gustavo Pezzi
This course is a complete immersion into the world of the Nintendo Entertainment System. We will learn to program games for the NES using the Assembly 6502...
27 hours 55 minutes 3 seconds