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?
Sorting
Searching
-
10Introduction to Section 2 and the Horse Race Problem
-
11Sorting in C++ Using Custom Comparators
-
12Structs and Overloading Comparison Operators
-
13Merge Sort
-
14QuickSort
-
15DNA Sorting Problem
-
16Count Sort
-
17Football Problem
-
18Bucket Sort
-
19Bucket Sort Solution to the Football Problem
-
20Problem Set 1
-
21Hints and Solutions
STL Data Structures: Stacks, Queues and BST- and Heap-based Structures
Hashing
Greedy Algorithms
Complete Search
Divide and Conquer
Dynamic Programming
Graphs 1: Graph Exploration
-
68Top-Down Fibonacci
-
69Bottom-Up Fibonacci
-
70How to Recognise and Approach DP Problems
-
71Maximum One-Dimensional Range Sum
-
72Space Optimisation
-
73Optimal Coin Change 1
-
74Optimal Coin Change 2
-
75Backtracking to Find Solutions
-
76Prefix Sums
-
77Horses Problem Revisited
-
78Horses Addendum
-
79Problem Set 8
-
80Hints and Solutions