/algorithm_practice

Practice of solving algorithmic problems

Primary LanguageJupyter Notebook

Yandex Inerview Kit


Полезные ссылки:


Содержание

  1. Последовательность из 0 и 1
  2. Списки
  3. Деревья
  4. Отрезки
  5. Скобки/полиз
  6. Палиндромы/анаграммы
  7. Геометрические
  8. Реализовать класс
  9. Строки/массивы
  1. Веб
  2. Жизненные
  3. Математические

Yandex_pt1 [1-34]

Yandex_pt2 [35-68]

Yandex_pt3 [69-96]


Задачи

[ Последовательность из 0 и 1 ]

[ Списки ]

[ Деревья ]

  • 28 Symmetric Tree Симметричное ли дерево?
  • 30 Validate Binary Search Tree Является ли дерево БДП?
  • 42 Lowest Common Ancestor of a Binary Tree - Наименьший общий предок
  • 53 Lowest Common Ancestor of a Binary Tree III - Есть ссылка на родителя
  • 60 Range Sum of BST - вернуть сумму значений всех узлов со значением в диапазоне [low, high]
  • 63 Binary Tree Maximum Path Sum - вернуть максимальную сумму пути любого непустого пути
  • 76 Найти наибольшую сумму в дереве
  • 79 Binary Tree Zigzag Level Order Traversal - вывести древо зигзагом
  • 89 Сериализация/десериализация BST
  • 97 Path Sum - Существует ли путь от корня до листа, который равен таргету?

[ Отрезки ]

  • 22 Merge Intervals - найти интервалы, которыми можно перекрыть заданные
  • 25 Meeting Rooms II - найти минимальное количество конференц-залов
  • 34 Interval List Intersections - найти пересечение этих двух списков интервалов

[ Скобки/полиз ]

[ Палиндромы/анаграммы ]

[ Геометрические ]

  • 1 Line Reflection - существует ли такая прямая, что после отражения всех точек через данную прямую множество исходных точек совпадает с множеством отраженных
  • 55 Maximal Rectangle - найти наибольший прямоугольник из 1
  • 72 Определить номер первой колонки, в которой есть хоть одна единица
  • 90 Развернуть матрицу на 90 градусов
  • 91 Spiral Matrix II - Генерация спиральной матрицы

[ Реализовать класс ]

[ Строки/массивы ]

Проверить

  • 7 One Edit Distance - Строку можно получить из другой одним редактированием
  • 15 Permutation in String - Вернуть true, если одна из перестановок s1 является подстрокой s2.
  • 48 Is Subsequence - Является ли одна строка подпоследовательностью другой
  • 73 Можно ли получить одну строку из другой за <= 1 одно исправление

Найти

  • 8 Subarray Sum Equals K - Вернуть общее количество подмассивов, сумма которых равна k
  • 99 Найти индекс подмассива, сумма которого равна k
  • 64 Continuous Subarray Sum - непрерывная подпоследовательность, сумма которой кратна k
  • 95 Subarray Sums Divisible by K - Найти количество не пустых подмассивов, сумма которых кратна k
  • 70 Найти подотрезок с наименьшей суммой по модулю
  • 71 Найти подотрезок с наибольшей суммой


  • 74 Найти подстроку, которая совпадает с точностью до перестановки
  • 40 Longest Palindromic Substring - Самая длинная подстрока палиндром
  • 78 Minimum Window Substring - минимальная подстрока, содержащая перестановку

Изменить

  • 3 Summary Ranges - [0, 1, 2, 4, 5, 7] -> ["0->2", "4->5", "7"]
  • 4 String Compression - ["a","a","b","b","c","c","c"] -> ["a","2","b","2","c","3"]
  • 9 Move Zeroes - [0,1,0,3,12] -> [1,3,12,0,0]
  • 10 Group Anagrams - ["eat","tea","tan","ate","nat","bat"] -> [["bat"],["nat","tan"],["ate","eat","tea"]]
  • 37 Merge Sorted Array - Слить два неубывающих массива в один неубывающий
  • 49 Squares of a Sorted Array - [-4,-1,0,3,10] -> [0,1,9,16,100]
  • 58 Remove Duplicates from Sorted Array - [0,0,1,1,1,2,2,3,3,4] -> [0,1,2,3,4,,,,,]
  • 61 Partition Labels - Разделить строку на как можно больше частей, чтобы каждая буква встречалась не более чем в одной части
  • 65 Reverse Words in a String III - Перевернуть все слова в строке
  • 85 Remove All Occurrences of a Substring - "axxxxyyyyb", "xy" -> "ab"

[ Веб ]

[ Жизненные ]

  • 20 Maximize Distance to Closest Person - посадить человека дальше от всех
  • 23 Trapping Rain Water - найти количество воды после дождя
  • 31 Number of Islands - найти количество островов из 1
  • 41 Jewels and Stones
  • 77 Найти максимальное число постояльцев, которые одновременно проживали в гостинице
  • 82 Minimize the Maximum Difference between Heights
  • 87 Здания, которые могут увидеть закат
  • 88 Здания, которые могут увидеть океан
  • 96 Reconstruct Itinerary - Проложить путь для аэропортов

[ Математические ]

  • 27 Implement Rand10() Using Rand7() - реализовать рандомайзер до 10 через ранд до 7
  • 44 Missing Number - Вернуть пропущенное число из диапазона [0..n]
  • 66 Add Strings - Сложить строки как числа
  • 75 Перевернуть int
  • 83 Find smallest missing number in sorted array - найти наименьшее пропущенное число

Training list (Yandex_training.ipynb)

Список задач, которые рекомендуют прорешать перед собеседованием

Training list