HOME > Development > Competitive Programming

Competitive Programming

  • Development
  • Mar 15, 2025
SynopsisCompetitive Programming, available at $44.99, has an average...
Competitive Programming  No.1

Competitive Programming, available at $44.99, has an average rating of 4.3, with 140 lectures, based on 93 reviews, and has 7491 subscribers.

You will learn about 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-Warshalls, 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, Kruskals 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 This course is ideal for individuals who are Students and engineers wishing to delve into competitive programming, diving into the details and soaring up the rankings or Developers with a desire to master algorithms to succeed in technical interviews or High school students with a passion for Mathematics interested in seeing algorithms applied to technology or Anyone interested in gaining insights and learning the details of algorithms and data structures It is particularly useful for Students and engineers wishing to delve into competitive programming, diving into the details and soaring up the rankings or Developers with a desire to master algorithms to succeed in technical interviews or High school students with a passion for Mathematics interested in seeing algorithms applied to technology or Anyone interested in gaining insights and learning the details of algorithms and data structures.

Enroll now: Competitive Programming

Summary

Title: Competitive Programming

Price: $44.99

Average Rating: 4.3

Number of Lectures: 140

Number of Published Lectures: 140

Number of Curriculum Items: 140

Number of Published Curriculum Objects: 140

Original Price: 94.99

Quality Status: approved

Status: Live

What You Will Learn

  • 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-Warshalls, 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, Kruskals 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
  • Who Should Attend

  • Students and engineers wishing to delve into competitive programming, diving into the details and soaring up the rankings
  • Developers with a desire to master algorithms to succeed in technical interviews
  • High school students with a passion for Mathematics interested in seeing algorithms applied to technology
  • Anyone interested in gaining insights and learning the details of algorithms and data structures
  • Target Audiences

  • Students and engineers wishing to delve into competitive programming, diving into the details and soaring up the rankings
  • Developers with a desire to master algorithms to succeed in technical interviews
  • High school students with a passion for Mathematics interested in seeing algorithms applied to technology
  • Anyone interested in gaining insights and learning the details of algorithms and data structures
  • 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?

    Course Curriculum

    Chapter 1: Introduction

    Lecture 1: About the Instructor

    Lecture 2: Course Prerequisites

    Lecture 3: Course Structure

    Lecture 4: What is an Online Judge?

    Lecture 5: Online Judge Verdicts

    Lecture 6: Types of Problem in Programming Contests

    Lecture 7: I/O for Competitive Programming

    Lecture 8: Welcome Contest

    Lecture 9: Hints and Solutions

    Chapter 2: Sorting

    Lecture 1: Introduction to Section 2 and the Horse Race Problem

    Lecture 2: Sorting in C++ Using Custom Comparators

    Lecture 3: Structs and Overloading Comparison Operators

    Lecture 4: Merge Sort

    Lecture 5: QuickSort

    Lecture 6: DNA Sorting Problem

    Lecture 7: Count Sort

    Lecture 8: Football Problem

    Lecture 9: Bucket Sort

    Lecture 10: Bucket Sort Solution to the Football Problem

    Lecture 11: Problem Set 1

    Lecture 12: Hints and Solutions

    Chapter 3: Searching

    Lecture 1: Linear Search

    Lecture 2: Binary Search

    Lecture 3: QuickSelect

    Lecture 4: Two Pointer Technique: Start+End

    Lecture 5: Two Pointer Technique: Different Paces

    Lecture 6: Problem Set 2

    Lecture 7: Hints and Solutions

    Chapter 4: STL Data Structures: Stacks, Queues and BST- and Heap-based Structures

    Lecture 1: Stacks: bracket matching

    Lecture 2: Queues

    Lecture 3: Hash Tables and Hash Sets Introduction

    Lecture 4: Unordered (Hash) Sets and Maps in C++

    Lecture 5: Ordered Sets and Maps

    Lecture 6: Dictionaries

    Lecture 7: Coordinate compression

    Lecture 8: Custom Comparators for STL Data Structures

    Lecture 9: Problem Set 3

    Lecture 10: Hints and Solutions

    Chapter 5: Hashing

    Lecture 1: Hash Functions

    Lecture 2: Extra: Handling Collisions

    Lecture 3: Rabin-Karp Case Study: Pattern Search

    Lecture 4: Rabin-Karp Case Study: Polynomial Rolling Hash Functions

    Lecture 5: Rabin-Karp Case Study: Sliding Window Technique

    Lecture 6: Sliding Window Technique: Subarray Sums

    Lecture 7: Problem Set 4

    Lecture 8: Hints and Solutions

    Chapter 6: Greedy Algorithms

    Lecture 1: What are Greedy Algorithms?

    Lecture 2: Greedy Coin Change

    Lecture 3: Demonstrating Correctness Under Contest Time Pressure

    Lecture 4: Timetable Problem

    Lecture 5: Interval Covering

    Lecture 6: Sort -> Solve

    Lecture 7: Problem Set 5

    Lecture 8: Hints and Solutions

    Chapter 7: Complete Search

    Lecture 1: Complete Search Introduction

    Lecture 2: Backtracking Introduction

    Lecture 3: Backtracking: Permutations

    Lecture 4: Backtracking: Subsets

    Lecture 5: Pruning: Card Game

    Lecture 6: Iterative Complete Search

    Lecture 7: Problem Set 6

    Lecture 8: Hints and Solutions

    Chapter 8: Divide and Conquer

    Lecture 1: Revisiting Sections 2 and 3

    Lecture 2: Binary Search the Answer

    Lecture 3: The Bisection Method

    Lecture 4: Problem Set 7

    Lecture 5: Hints and Solutions

    Chapter 9: Dynamic Programming

    Lecture 1: Top-Down Fibonacci

    Lecture 2: Bottom-Up Fibonacci

    Lecture 3: How to Recognise and Approach DP Problems

    Lecture 4: Maximum One-Dimensional Range Sum

    Lecture 5: Space Optimisation

    Lecture 6: Optimal Coin Change 1

    Lecture 7: Optimal Coin Change 2

    Lecture 8: Backtracking to Find Solutions

    Lecture 9: Prefix Sums

    Lecture 10: Horses Problem Revisited

    Lecture 11: Horses Addendum

    Lecture 12: Problem Set 8

    Lecture 13: Hints and Solutions

    Chapter 10: Graphs 1: Graph Exploration

    Lecture 1: Graph Terminology

    Lecture 2: Graph Representation

    Lecture 3: Depth-First Search

    Lecture 4: Breadth-First Search

    Lecture 5: Farthest Node: BFS Application

    Lecture 6: Graph Sums: DFS Application

    Lecture 7: Connected Components

    Lecture 8: Labyrinth Problem Part 1: Single-Source BFS

    Lecture 9: Labyrinth Problem Part 2: Multi-Source BFS

    Lecture 10: Problem Set 9

    Instructors

  • Competitive Programming  No.2
    Blanca Huergo
    Chairwoman of the Spanish Informatics Olympiad for Girls
  • Rating Distribution

  • 1 stars: 5 votes
  • 2 stars: 3 votes
  • 3 stars: 8 votes
  • 4 stars: 18 votes
  • 5 stars: 59 votes
  • Frequently Asked Questions

    How long do I have access to the course materials?

    You can view and review the lecture materials indefinitely, like an on-demand channel.

    Can I take my courses with me wherever I go?

    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!