Алгоритмические задачи с собеседований
Подробнее
Что нужно для старта
- Базовое знание хотя бы одного языка программирования. Для всех задач мы приводим решение на языке Python.
Что вы получите
- Разберётесь с основными алгоритмическими приёмами, использующимися для решения большинства вычислительных задач. Мы подробно разберём такие техники, как жадные алгоритмы, метод "разделяй и властвуй" и динамическое программирование.
- Научитесь оценивать время работы алгоритмов. Мы наглядно продемонстрируем, как оценить, с какой скоростью растёт время работы алгоритма, и как понять, сколько будет работать алгоритм на больших данных, даже не запуская его.
- Потренируетесь писать эффективный и надёжный код на вашем любимом языке программирования: C++, Java, Python, C, C#, Go, Haskell, Javascript, Kotlin, Ruby, Rust, Scala, или TypeScript.
- Будете применять эффективные техники тестирования и отладки кода. Ваши решения будут проверяться на десятках тщательно подобранных тестов.
- Потренируетесь решать алгоритмические задачи с собеседований. Мы подобрали задачи так, чтобы они покрывали самые распространённые техники, использующиеся для решения задач с собеседований.
- Попрактикуетесь читать и писать по-английски — этот навык для программиста не менее важен, чем умение программировать. Все материалы курса приводятся на английском, вопросы на форуме можно задавать как по-английски, так и по-русски.
Для кого этот курс
- Пройдите этот курс, чтобы подготовиться к алгоритмической секции собеседования или просто хорошо разобраться в алгоритмах.
Программа курса
- Welcome
- About This Book
- Preparing for a Coding Interview
- Programming Challenges
- Interactive Algorithmic Puzzles
- Interview Questions
- Certificate
- Meet Our team
- What Is an Algorithm?
- Fast Versus Slow Algorithms
- Running Time and the Big-O Notation
- Algorithm Design Techniques
- Greedy Algorithms
- Dynamic Programming Algorithms
- Recursive Algorithms
- Divide-and-Conquer Algorithms
- Randomized Algorithms
- Programming Challenges
- Sum of Two Digits
- Maximum Pairwise Product
- Solving a Programming Challenge in Five Easy Steps
- Algorithmic Warm Up
- Fibonacci Number
- Last Digit of Fibonacci Number
- Huge Fibonacci Number
- Last Digit of the Sum of Fibonacci Numbers
- Last Digit of the Partial Sum of Fibonacci Numbers
- Last Digit of the Sum of Squares of Fibonacci Numbers
- Greatest Common Divisor
- Least Common Multiple
- Summary of Algorithmic Ideas
- Josephus Problem
- Range Sum Queries
- Greedy Algorithms
- Money Change
- Maximum Value of the Loot
- Car Fueling
- Maximum Advertisement Revenue
- Collecting Signatures
- Maximum Number of Prizes
- Maximum Salary
- Job Scheduling
- Mice and a Fox
- Party Planning at Work
- Cooking a Dinner
- Graph Coloring
- Connect Ropes with Minimal Cost
- Bulb Switching
- Friends Seat Together
- Minimum Unchangeable Amount
- Divide-and-Conquer
- Binary Search
- Binary Search with Duplicates
- Majority Element
- Speeding-up RandomizedQuickSort
- Number of Inversions
- Organizing a Lottery
- Closest Points
- Count of an Element in a Sorted Array
- Median of Two Sorted Arrays
- Smallest Missing Element in a Sorted Array
- Unbounded Binary Search
- Duplicate Search
- Minimal Element in a Circularly Sorted Array
- Anagram Search
- Segregate Negative and Positive Integers
- Maximum-Sum Interval
- Searching a Sorted Matrix
- Dynamic Programming
- Money Change Again
- Primitive Calculator
- Edit Distance
- Longest Common Subsequence of Two Sequences
- Longest Common Subsequence of Three Sequences
- Maximum Amount of Gold
- Splitting the Pirate Loot
- Maximum Value of an Arithmetic Expression
- Designing Dynamic Programming Algorithms
- Longest Palindromic Subsequence
- Longest Repeating Subsequence
- Interleaving Strings
- Domino Tiling
- Coloring a Board
- Contrast House Painting
- Non-intersecting Chords
- Fun Party Planning at Work
- The Coin Game
- Language Independent
- C++ Specific
- Python Specific
- Frequently Asked Questions
01Welcome
- Welcome
- About This Book
- Preparing for a Coding Interview
- Programming Challenges
- Interactive Algorithmic Puzzles
- Interview Questions
- Certificate
- Meet Our team
02Algorithms and Complexity
- What Is an Algorithm?
- Fast Versus Slow Algorithms
- Running Time and the Big-O Notation
03Algorithm Design Techniques
- Algorithm Design Techniques
- Greedy Algorithms
- Dynamic Programming Algorithms
- Recursive Algorithms
- Divide-and-Conquer Algorithms
- Randomized Algorithms
04Programming Challenges
- Programming Challenges
- Sum of Two Digits
- Maximum Pairwise Product
- Solving a Programming Challenge in Five Easy Steps
05Algorithmic Warm Up
- Algorithmic Warm Up
- Fibonacci Number
- Last Digit of Fibonacci Number
- Huge Fibonacci Number
- Last Digit of the Sum of Fibonacci Numbers
- Last Digit of the Partial Sum of Fibonacci Numbers
- Last Digit of the Sum of Squares of Fibonacci Numbers
- Greatest Common Divisor
- Least Common Multiple
- Summary of Algorithmic Ideas
- Josephus Problem
- Range Sum Queries
06Greedy Algorithms
- Greedy Algorithms
- Money Change
- Maximum Value of the Loot
- Car Fueling
- Maximum Advertisement Revenue
- Collecting Signatures
- Maximum Number of Prizes
- Maximum Salary
- Job Scheduling
- Mice and a Fox
- Party Planning at Work
- Cooking a Dinner
- Graph Coloring
- Connect Ropes with Minimal Cost
- Bulb Switching
- Friends Seat Together
- Minimum Unchangeable Amount
07Divide-and-Conquer
- Divide-and-Conquer
- Binary Search
- Binary Search with Duplicates
- Majority Element
- Speeding-up RandomizedQuickSort
- Number of Inversions
- Organizing a Lottery
- Closest Points
- Count of an Element in a Sorted Array
- Median of Two Sorted Arrays
- Smallest Missing Element in a Sorted Array
- Unbounded Binary Search
- Duplicate Search
- Minimal Element in a Circularly Sorted Array
- Anagram Search
- Segregate Negative and Positive Integers
- Maximum-Sum Interval
- Searching a Sorted Matrix
08Dynamic Programming
- Dynamic Programming
- Money Change Again
- Primitive Calculator
- Edit Distance
- Longest Common Subsequence of Two Sequences
- Longest Common Subsequence of Three Sequences
- Maximum Amount of Gold
- Splitting the Pirate Loot
- Maximum Value of an Arithmetic Expression
- Designing Dynamic Programming Algorithms
- Longest Palindromic Subsequence
- Longest Repeating Subsequence
- Interleaving Strings
- Domino Tiling
- Coloring a Board
- Contrast House Painting
- Non-intersecting Chords
- Fun Party Planning at Work
- The Coin Game
09Best Programming Practices (Optional)
- Language Independent
- C++ Specific
- Python Specific
10Appendix
- Frequently Asked Questions
Решив 75% всех задач, вы получите сертификат от Степика, подписанный авторами. Решив дополнительный экзамен, вы получите персональное рекомендательное письмо от авторов.
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «Алгоритмические задачи с собеседований» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 7 сентября 2026 г.

Stepik 

















