Алгоритмы

Зачем?ЯндексТ-банкAvitoVKSberOzonYadroПодготовка
Собеседование:
Алгоритмы спрашивают на любую специальность: бэкенд, фронтенд, мл/дл и аналитика. На аналитика алгоритмы в основном требует только Яндекс в контесте и на собеседовании. На стажера и джуна алгоритмы must have. Чем выше грейд, тем требование к алгоритмам/математике ниже, а к умению решать рабочие задачи выше.
Экзамен:
Алгоритмы входят в программу экзаменов любой магистратуры по направлению ПМИ, входят в программу экзаменов ШАДа и других школ дополнительного образования.
Фундамент:
Не знать алгоритмы — все равно, что не знать таблицу умножения. Это такой же фундамент, как и математика (более глобально — это раздел математики), без которого невозможно двигаться и осваивать новые технологии. Не зря алгоритмы изучают несколько семестров на всяких топовых программах в духе фкн пми, фивт, ШАД и так далее.

Все задачи алгоритмический собеседований и контестов в Яндекс находятся здесь. Ранжированы по частоте встречаемости на собесе, от самой частой до редкой. Принятие – это процент людей, которым задачу зачли. На нашем курсе по алгоритмам вас ждет подробный разбор этих задач (код + видео). 

НазваниеПринятиеУровень
Line Reflection34.20%Medium
Longest Subarray of 1’s After Deleting One Element60.00%Medium
Summary Ranges44.50%Easy
String Compression46.90%Medium
Zigzag Iterator61.00%Medium
Valid Palindrome40.70%Easy
One Edit Distance33.80%Medium
Subarray Sum Equals K43.80%Medium
Move Zeroes60.10%Easy
Group Anagrams63.20%Medium
Insert Delete GetRandom O(1)51.00%Medium
LRU Cache39.10%Medium
Generate Parentheses69.20%Medium
Reverse Linked List69.20%Easy
Permutation in String44.10%Medium
Merge k Sorted Lists45.80%Hard
Number of Recent Calls73.00%Easy
Valid Parentheses40.60%Easy
Max Consecutive Ones II48.60%Medium
Maximize Distance to Closest Person47.40%Medium
Design Hit Counter66.90%Medium
Merge Intervals44.20%Medium
Trapping Rain Water55.40%Hard
Two Sum48.20%Easy
Meeting Rooms II49.10%Medium
Find All Anagrams in a String47.10%Medium
Implement Rand10() Using Rand7()46.60%Medium
Symmetric Tree50.90%Easy
Longest Substring Without Repeating Characters32.70%Medium
Validate Binary Search Tree30.10%Medium
Number of Islands52.90%Medium
Flatten Nested List Iterator58.00%Medium
Consecutive Characters62.00%Easy
Interval List Intersections70.70%Medium
Implement Queue using Stacks56.60%Easy
Add Two Numbers37.70%Medium
Merge Sorted Array43.00%Easy
Merge Two Sorted Lists59.10%Easy
Max Consecutive Ones III62.30%Medium
Longest Palindromic Substring31.60%Medium
Jewels and Stones87.50%Easy
Lowest Common Ancestor of a Binary Tree54.00%Medium
Intersection of Two Arrays II54.40%Easy
Missing Number58.50%Easy
Evaluate Reverse Polish Notation41.40%Medium
Median of Two Sorted Arrays33.50%Hard
Simplify Path37.20%Medium
Is Subsequence50.10%Easy
Squares of a Sorted Array71.50%Easy
Remove Nth Node From End of List37.70%Medium
Perfect Squares51.50%Medium
Max Stack44.70%Easy
Lowest Common Ancestor of a Binary Tree III77.50%Medium
Longest Substring with At Most Two Distinct Characters52.20%Medium
Maximal Rectangle42.10%Hard
Search in Rotated Sorted Array37.30%Medium
Two Sum II – Input Array Is Sorted58.00%Easy
Remove Duplicates from Sorted Array48.10%Easy
Find Minimum in Rotated Sorted Array47.60%Medium
Range Sum of BST84.70%Easy
Partition Labels78.60%Medium
Product of Array Except Self63.40%Medium
Binary Tree Maximum Path Sum37.20%Hard
Continuous Subarray Sum26.70%Medium
Reverse Words in a String III77.20%Easy
Add Strings51.50%Easy
Palindrome Linked List45.50%Easy
First Unique Character in a String56.40%Easy

Контесты на стажировку в Яндекс за все года по всем направлениям

Зима-Лето 2025 годаРазбор
Осень-Зима 2024 годаРазбор
Весна-Лето 2024 годаРазбор
Осень-Зима 2023 годаРазбор
Весна-Лето 2023 годаРазбор
Осень-зима 2022 годаРазбор
Весна-Лето 2022 годаРазбор

Все задачи алгоритмический собеседований и контестов в Т-банк находятся здесь. Ранжированы по частоте встречаемости на собесе, от самой частой до редкой. Принятие – это процент людей, которым задачу зачли. На нашем курсе по алгоритмам вас ждет подробный разбор этих задач (код + видео). 

НазваниеПринятиеУровень
Min Stack56%Medium
Longest Substring Without Repeating Characters36%Medium
Two Sum55%Easy
Rotate Image77%Medium
Keys and Rooms61.00%Medium
Longest Palindromic Substring35%Medium
Find First and Last Position of Element in Sorted Array46%Medium
Simplify Path47%Medium
Backspace String Compare49%Easy
Form Smallest Number From Two Digit Arrays55%Easy
Number of Islands62%Medium
Battleships in a Board76%Medium
Find All Numbers Disappeared in an Array62%Easy
Longest Subarray of 1’s After Deleting One Element69%Medium
Search a 2D Matrix52%Medium
Is Subsequence48%Easy
Search in Rotated Sorted Array42%Medium
Valid Parentheses58%Easy
Decode String61%Medium
Event Emitter74%Medium
Meeting Rooms II52%Medium
Squares of a Sorted Arra44.20%Easy
Subarray Sums Divisible by K55%Medium
Maximize Distance to Closest Person48%Medium
Department Highest Salary54%Medium
Department Highest Salary54%Medium
Isomorphic Strings46Easy
Subarray Sum Equals K45%Medium
Paint House63%Medium
Valid Palindrome50%Easy
Find the Longest Balanced Substring of a Binary String45%Easy
Reverse Linked List79%Easy

Все задачи алгоритмический собеседований и контестов в Авито находятся здесь. Ранжированы по частоте встречаемости на собесе, от самой частой до редкой. Принятие – это процент людей, которым задачу зачли. На нашем курсе по алгоритмам вас ждет подробный разбор этих задач (код + видео). 

НазваниеПринятиеУровень
Top K Frequent Elements64%Medium
Add Two Numbers46%Medium
Add Strings51%Easy
Generate Parentheses77%Medium
Merge Sorted Array61%Easy
Add to Array-Form of Integer45%Easy
Two Sum53%Easy
Sum of Subarray Minimums53%Medium
Kth Largest Element in an Array67%Medium

Все задачи алгоритмический собеседований и контестов в VK находятся здесь. Ранжированы по частоте встречаемости на собесе, от самой частой до редкой. Принятие – это процент людей, которым задачу зачли. На нашем курсе по алгоритмам вас ждет подробный разбор этих задач (код + видео). 

НазваниеПринятиеУровень
Maximize Distance to Closest Person48%Medium
Move Zeroes46%Easy
Merge Sorted Array62%Easy
Summary Ranges83%Easy
Valid Palindrome69%Easy
Longest Subarray of 1’s After Deleting One Element69% Medium

Все задачи алгоритмический собеседований и контестов в Sber находятся здесь. Ранжированы по частоте встречаемости на собесе, от самой частой до редкой. Принятие – это процент людей, которым задачу зачли. На нашем курсе по алгоритмам вас ждет подробный разбор этих задач (код + видео). 

НазваниеПринятиеУровень
Squares of a sorted-array48%Easy
Backspace string compare46%Easy
Roman to Integer 62%Easy
Valid Parentheses83%Easy
Is Subsequence69%Easy
Reverse Words in a String-iii69% Easy
Missing Number69% Easy
Number of Students Doing Homework at a Given Time69% Easy
Reverse String69% Easy
Summary Ranges69% Easy
Valid Palindrome69% Easy
Find the Difference of Two Arrays69% Easy
Single Number14% Easy
Same Tree14% Easy
Valid Anagram88% Easy
Sum of Left Leaves88% Easy
Max Consecutive Ones88% Easy
Merge Two Sorted Lists88% Easy

Все задачи алгоритмический собеседований и контестов в Озон находятся здесь. Ранжированы по частоте встречаемости на собесе, от самой частой до редкой. Принятие – это процент людей, которым задачу зачли. На нашем курсе по алгоритмам вас ждет подробный разбор этих задач (код + видео). 

НазваниеПринятиеУровень
Valid Parentheses42%Easy
Merge Intervals49%Medium
Squares of a Sorted Array73%Easy
Monotonic Array61%Easy
Department Top Three Salaries57%Hard
Two Sum55%Easy
Move Zeroes69%Easy
Reverse Linked List79%Medium
First Unique Character in a String69%Eeasy
Invert Binary Tree79%Eeasy
Best Time to Buy and Sell Stock55%Eeasy
Decode String61%Medium
Department Highest Salary54%Medium
Longest Substring Without Repeating Characters54%Medium
НазваниеПринятиеУровень
LRU Cache 54%Medium
Шаг 1:
Для начала придется выучить какой-нибудь язык программирования, на котором вы будете решать алгоритмические задачи. Самым популярным выбором является питон: он простой и востребован в аналитике, мл&ds. Подойдет любой курс, например этот

Его достаточно выучить на уровне базовых функций, операторов, структур данных.
Шаг 2:
Далее погружаемся алгосы. Начать стоит с книжки грокаем алгоритмы, читается за два вечера, и с понимания, как считается сложность алгоритма: всякие нотации. Потом проходим какой-нибудь структурированный ВУЗовский курс по алгосам. Например, на ютубе от Паши Маврина

.
Шаг 3:
Параллельно со всем этим решаем задачки на leetcode

Да, по началу будет сложно и непонятно, но просто действуем по схеме: решаем задачу, гуглим решения, разбираем решения и пробуем решить аналогичную — как получилось разобраться, переходим к другой теме. Только так через боль будет прогресс. Здесь главное выучить основные 100 идей решения, все остальное просто их комбинация.