4.83 out of 5
4.83
3 reviews on Udemy

Competitive Programming

Master the Theory and Application of Algorithms and Data Structures to Excel in Programming Contests
Instructor:
Blanca Huergo
2,312 students enrolled
English [Auto]
Competitive Programming
Algorithms
Data Structures
Programming
Merge Sort, QuickSort, Count Sort, Bucket Sort
Linear Search, Binary Search, QuickSelect, Two Pointer Technique
Stacks, Queues, Hash Tables, Hash Sets, Heap-Based Structures, Binary Search Tree-Based Data Structures, Coordinate Compression, Custom Comparators
Hash Functions, Collisions, Rabin-Karp, Sliding Window Technique
Greedy Algorithms
Iterative Complete Search, Backtracking, Permutations, Subsets, Pruning
Divide and Conquer, Binary Search the Answer, the Bisection Method
Dynamic Programming: Competitive Approach, Top-Down and Bottom-Up DP, Space Optimisation, Prefix Sums, Backtracking to Find Solutions
Graph Representation: Adjacency Lists, Adjacency Matrices, Edge Lists, Weighted and Unweighted Graphs
Graph Exploration: Breadth-First Search (BFS), Depth-First Search (DFS), Connected Components, Multi-Source BFS
Directed Graphs and Cycles: Topological Sort, Strongly Connected Components, BFS for Single-Source Shortest Paths
Shortest Paths: Dijkstra, Floyd-Warshall's, Bellman-Ford and Negative-Weight Cycles, Arbitrages and the Logarithm Trick
Trees: Special Properties, Faster Shortest Paths, Diameter, Minimum Spanning Trees
Union-Find Disjoint Sets: Optimised Implementation, Kruskal's Algorithm, Minimum Spanning Tree Variants
Strings: Dynamic Programming on Strings, Longest Common Subsequence, Edit Distance, Longest Palindromic Substring, Tries, Suffix Tries
Game Theory: States and Transitions, Minimax for Optimal Game Playing, Dynamic Programming To Recover Optimal Strategies
Approaching Interactive Problems

Ready to take your programming skills to the next level? In this course, which will help both novice and advanced programmers alike, you will dominate the algorithms and data structures necessary to do well in contests and to gain a competitive edge over other candidates in software interviews.

There are many tricks which are gained through experience and competitive programmers have a sixth sense when it comes to breaking problems down into the building blocks that make up a solution and which many are reluctant to share. Here I will let you in on the techniques and the applications that are useful for the field, focusing on real problems and how they are solved, while giving you an intuition on what is going on under the hood and why these ideas work.

From dynamic programming to graph algorithms and backtracking, you will get to practise and feel confident about many topics, learning advanced concepts such as union-find disjoint sets, tries and game theory without feeling lost, and to apply new content as soon as you learn it, with over 100 suggested problems, both from past olympiads and online judges and some created by me specifically for this course. All of them come with detailed solutions. With this course, you will be ready to participate in online contests and informatics olympiads, and will have the experience necessary to continue advancing in this field. Are you ready to take this big step in your journey?

You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.8
4.8 out of 5
3 Ratings

Detailed Rating

Stars 5
5
Stars 4
2
Stars 3
1
Stars 2
0
Stars 1
0
30-Day Money-Back Guarantee

Includes

12 hours on-demand video
37 articles
Full lifetime access
Access on mobile and TV
Certificate of Completion
Scroll to Top