We may earn an affiliate commission when you visit our partners.
Andrei Chiriac

This course is going to be your bible on solving each coding interview question and competitive programming challenge. The content is based on my 6 year experience of struggling to find and solve a wide range of problems and develop the system for mastering this skill. I cover the exact same content that has helped my students' performance skyrocket and got them offers at top companies like Google, Facebook and Amazon and solid results in the International Competitive Programming Contests.

Read more

This course is going to be your bible on solving each coding interview question and competitive programming challenge. The content is based on my 6 year experience of struggling to find and solve a wide range of problems and develop the system for mastering this skill. I cover the exact same content that has helped my students' performance skyrocket and got them offers at top companies like Google, Facebook and Amazon and solid results in the International Competitive Programming Contests.

We start from basics such as Mathematics Fundamentals: Prime Numbers, Sieve of Eratosthenes, Fast Modular Exponentiation. Then we dive into interesting challenges and gold tricks on arrays and matrices, followed by Binary Search, Recursion and Divide and Conquer. We continue by exploring fundamental data structures such as Stack, Queue, Deque, Heap and Hash Table. Then, after building a solid foundation, we explore complex topics such as Greedy and Dynamic Programming, in which I reveal bulletproof formulas that guide you in solving every single problem of that specific type.

Here's what make this course amazing:

  • I guide you through the line of my thought when solving each problem, focusing on building the general approach for any type of problem you can encounter in competitive programming contests or software developing interviews.

  • You will learn all the theory needed, but our main focus here is on practical applications.

  • I share with you problem solving tricks and good coding practises that took me years and hundreds of problems to figure out.

  • It's interactive and engaging: I try to keep the theory as simple and natural as possible and we work as a team in solving any problem.

Do you think it's finally the time to get the Software Developer Job or the results in Competitive Programming you deserve? Follow me.

Enroll now

What's inside

Learning objectives

  • Build a solid foundation to become a competitive programming wizard
  • Master revolutionary data structures and various types of problems using each of them
  • Learn fundamental algorithms and solve classical problems
  • Get ready for codeforces, codechef, hackerrank, acm-icpc and more

Syllabus

Know how to take this course
How to take this Course
READ BEFORE YOU START!
What are Algorithms?
Read more
What are Data Structures?
Complexity Analysis
Loops
Prime Number Test

Homework: Change the for loop in the code in order for our program to run in O( sqrt(n) ) time complexity.

The solution is in the source code.

Sieve of Eratosthenes
Sieve of Eratosthenes - Implementation
Prime Factorization
Prime Factorization - Implementation
Fast Modular Exponentiation
Fast Modular Exponentiation - Iterative Implementation
Loops - Homework
Arrays
Frequency Array
Longest Consecutive Numbers Subarray
Longest Consecutive Numbers Subarray - Implementation
Pigeonhole Principle Problem
Pigeonhole Principle - Implementation
Introduction to the STL Vector
Arrays - Homework
Partial Sums
Partial Sums - Implementation
Maximum Sum Subarray - Greedy Approach
Maximum Sum Subarray - Greedy Approach Implementation
Maximum Sum Subarray - Partial Sums Approach
Maximum Sum Subarray - Partial Sums Approach Implementation
Range Update Trick
Matrices
Maximum Sum Submatrix
Maximum Sum Submatrix - Implementation
Max Area Rectangle Full Of 1's
Max Area Rectangle Full Of 1's - Implementation
Maximum size square full of 1's
Maximum size square full of 1's - Implementation
Matrices - Homework
Binary Search
Introduction to Binary Search
Binary Search - Implementation
Lower Bound
Minimum Capacity Transportation Problem
Minimum Capacity Transportation - Implementation
Maximum Number of Groups Problem
Maximum Number of Groups - Implementation
Maximum Special Distance Problem
Maximum Special Distance - Implementation
Binary Search - Homework
Stack
Introduction to Stack
Valid Parentheses Problem
Valid Parentheses - Implementation
First Greater Element Problem
First Greater Element - Implementation
Largest Rectangular Area in a Histogram
Largest Rectangular Area in a Histogram - Implementation
Maximum area rectangle full of 1's
Maximum area rectangle full of 1's - Implementation
Stack - Homework
Heap
Introduction to Heap
Inserting a Node
Removing the Root
Time Complexity
Priority_Queue
Connect the ropes with minimum cost
Connect the ropes with minimum cost - Implementation
Greedy
Introduction to Greedy
Knapsack Problem
Knapsack Problem - Implementation
Activity Selection Problem
Activity Selection - Implementation
Minimum Number of Platforms Problem
Minimum Number of Platforms - Implementation
Kill the monsters!
Kill the monsters! - Implementation
Minimum Number of Boats Problem
Minimum Number of Boats - Implementation
Queue & Deque
Introduction to Queue
Lee's Algorithm
Lee's Algorithm - Implementation
01 Matrix
Introduction to Deque
Minimum of K-length subarrays
Minimum of K-length subarrays - Implementation
Maximum Sum Subarray with length in given range
Maximum Sum Subarray with length in given range - Implementation
Hash Table
Introduction to Hash Table
Hash Table - Implementation
Unordered_Map
Unordered_Set
Number of Pairs of Given Sum

Save this course

Save The Bible of Competitive Programming & Coding Interviews to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in The Bible of Competitive Programming & Coding Interviews with these activities:
Review Complexity Analysis
Solidify your understanding of complexity analysis to better evaluate and compare algorithms covered in the course.
Browse courses on Complexity Analysis
Show steps
  • Review the definitions of Big O, Big Theta, and Big Omega notations.
  • Practice determining the time and space complexity of simple code snippets.
  • Analyze the complexity of common data structure operations.
Review Introduction to Algorithms
Deepen your understanding of algorithms and data structures with a comprehensive textbook.
Show steps
  • Read relevant chapters on data structures and algorithms covered in the course.
  • Work through the exercises and problems at the end of each chapter.
  • Compare the book's explanations with the course's explanations.
LeetCode Practice: Arrays and Matrices
Sharpen your problem-solving skills by practicing array and matrix problems on LeetCode.
Show steps
  • Solve at least 5 LeetCode problems related to arrays and matrices.
  • Focus on problems that involve frequency arrays, partial sums, and maximum sum submatrix.
  • Analyze the time and space complexity of your solutions.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Create a Blog Post on Binary Search
Solidify your understanding of binary search by explaining the concept and its applications in a blog post.
Show steps
  • Research and gather information on binary search algorithms.
  • Write a clear and concise explanation of binary search.
  • Include examples of how binary search is used in different scenarios.
  • Publish your blog post on a platform like Medium or your personal website.
Implement a Hash Table from Scratch
Gain a deeper understanding of hash tables by implementing one from scratch.
Show steps
  • Choose a programming language (e.g., Python, Java, C++).
  • Implement the basic hash table operations: insert, delete, search.
  • Handle collisions using techniques like chaining or open addressing.
  • Test your implementation thoroughly with various inputs.
Cracking the Coding Interview
Prepare for coding interviews by studying common data structures, algorithms, and problem-solving techniques.
Show steps
  • Read the chapters on data structures and algorithms relevant to the course.
  • Practice solving the interview questions provided in the book.
  • Focus on understanding the underlying concepts and problem-solving strategies.
Tutor a Beginner in Data Structures
Reinforce your understanding by explaining data structures concepts to someone new to the topic.
Show steps
  • Find a beginner who needs help with data structures.
  • Prepare a lesson plan covering basic data structures like arrays, linked lists, and stacks.
  • Explain the concepts clearly and answer their questions patiently.
  • Provide practice problems and feedback on their solutions.

Career center

Learners who complete The Bible of Competitive Programming & Coding Interviews will develop knowledge and skills that may be useful to these careers:

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in The Bible of Competitive Programming & Coding Interviews.
Comprehensive textbook on algorithms, covering a wide range of topics relevant to competitive programming. It provides detailed explanations, pseudocode, and analysis of various algorithms and data structures. It valuable resource for understanding the theoretical foundations of algorithms and improving problem-solving skills. This book is often used as a textbook in university-level algorithms courses.
Focuses on preparing for coding interviews at top tech companies. It covers common data structures and algorithms, as well as problem-solving strategies and interview techniques. It also includes numerous practice problems with detailed solutions. This book valuable resource for those seeking software engineering jobs.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser