Подтемы
CS DSA — Сложность (Big-O, анализ)
13 вопр.
CS DSA — Динамическое программирование
23 вопр.
CS DSA — Графы (BFS/DFS, Dijkstra, topo)
15 вопр.
CS DSA — Жадные алгоритмы
11 вопр.
CS DSA — Хеш-таблицы
11 вопр.
CS DSA — Кучи / priority queue
15 вопр.
CS DSA — Связные списки
13 вопр.
CS DSA — Рекурсия и backtracking
13 вопр.
CS DSA — Поиск (binary search)
12 вопр.
CS DSA — Сортировки
13 вопр.
CS DSA — Стеки и очереди
15 вопр.
CS DSA — Строковые алгоритмы
13 вопр.
CS DSA — Деревья (BST, traversal)
13 вопр.
CS DSA — Two pointers / sliding window
14 вопр.
31 вопросов
-
middle theory Представьте, что вам нужно отсортировать массив из 10 млн элементов на сервере с 4 ГБ ОЗУ. Объясните, почему в этом сценарии **Merge Sort** может быть предпочт…
-
middle theory Представьте, что вы работаете с массивом, содержащим миллионы строк в формате CSV, где каждая строка представляет собой запись пользователя. Какой алгоритм сор…
-
middle theory Представьте, что вы реализуете in-order и post-order traversal для BST. Какие ключевые различия в поведении этих обходов могут повлиять на результаты, если дер…
-
middle theory Предположим, вы должны реализовать метод поиска минимального узла в поддереве BST. Какой алгоритм вы выберете, если дерево может содержать до 10^6 узлов? Обосн…
-
middle theory Почему двоичный поиск эффективнее линейного поиска для больших массивов, и в каких случаях использование двоичного поиска может быть неоптимальным?
-
middle theory Какие из недостатков двоичного поиска можно устранить с использованием дополнительной памяти или временных затрат? Приведите конкретные примеры.
-
middle theory Какие типичные ошибки возникают при реализации двоичного поиска, и как их можно предотвратить с помощью тестирования и отладки?
-
middle theory Представьте, что вы пишете рекурсивный алгоритм для решения задачи с высокой глубиной рекурсии (например, обход дерева с 10000 уровнями). Какие конкретные техн…
-
middle theory В backtracking-алгоритмах часто используются вспомогательные структуры данных для хранения промежуточных результатов. Какой минимальный набор данных вы бы выбр…
-
middle theory Представьте, что вы работаете с массивом, содержащим миллионы элементов, и вам нужно найти минимальное окно, содержащее все уникальные элементы. Какие потенциа…
-
middle theory Предположим, вы используете **two pointers** для решения задачи с сортированным массивом. Какие возможные failure modes могут возникнуть при наличии дубликатов…
-
middle theory Как динамическое программирование может потерпеть неудачу в задачах с пересекающимися подзадачами, где оптимальная подструктура отсутствует? Приведите пример и…
-
middle theory Какие trade-offs возникают между подходами **табуляции** и **мемоизацией** в динамическом программировании? В каких сценариях один из подходов предпочтительнее?
-
middle theory Представьте, что вам нужно выполнить топологическую сортировку на графе с циклом. Какой алгоритм вы выберете и почему? Какие последствия возникнут для результата?
-
middle theory Представьте, что вы реализуете хеш-таблицу с открытым адресованием. Как вы будете обрабатывать коллизии, и какие trade-offs между линейным пробированием, квадр…
-
middle theory Представьте, что вам нужно реализовать систему распределения задач с приоритетами в масштабируемом приложении. Какой тип кучи (min-heap или max-heap) вы бы выб…
-
middle theory Как бы вы реализовали приоритетную очередь с поддержкой удаления произвольного элемента (а не только корня)? Опишите подходы, их сложность и потенциальные проб…
-
middle theory Представьте, что вы реализуете функцию для удаления узла из двусвязного списка. Какие потенциальные ошибки могут возникнуть при обработке граничных случаев (на…
-
middle theory При реализации итератора для связного списка с поддержкой `__next__()` и `__iter__()` какие особенности нужно учитывать для корректной работы с циклическими сп…
-
middle theory Реализуйте стек с использованием двух очередей. Объясните, как будет выглядеть код и какова сложность операций push и pop. Какие edge cases могут возникнуть пр…
-
middle theory Представьте, что вам нужно выбрать между стеком и очередью для реализации системы обработки задач. В чем trade-offs выбора очереди вместо стека? Приведите прим…
-
middle theory Как вы будете масштабировать стек или очередь при обработке 10^9 элементов? Какие ограничения могут возникнуть при таком масштабировании и как их можно обойти?
-
middle theory Представьте, что вы реализуете алгоритм поиска подстроки с использованием префикс-функции (KMP). Как вы обработаете ситуацию, когда паттерн содержит повторяющи…
-
middle theory Какой из алгоритмов — Рабина-Карпа или Кнута-Морриса-Пратта — лучше подходит для поиска нескольких паттернов в большом тексте? Объясните trade-offs между ними …
-
middle theory В каких сценариях жадные алгоритмы могут давать локально оптимальные решения, но глобально неоптимальные? Приведите пример и объясните, как можно обнаружить та…
-
middle theory Какие trade-offs возникают при выборе между хеш-таблицами и сбалансированными деревьями (например, красно-черными) для реализации словаря? Приведите примеры сц…
-
middle theory Представьте, что вам нужно обработать массив из 10^9 элементов, где 99% значений дубликаты. Какой алгоритм сортировки будет оптимальным в этом случае? Объяснит…
-
middle theory Как вы обработаете ситуацию, когда стек вызовов в рекурсивном алгоритме превысит лимит памяти? Опишите подходы, которые позволят избежать переполнения стека бе…
-
middle theory Расскажите, как можно использовать паттерн Two Pointers (быстрый/медленный или встречные) для решения задачи нахождения длины самой длинной подстроки без повто…
-
middle theory Расскажите, как можно обойти матрицу по спирали, начиная с верхнего левого угла и двигаясь по часовой стрелке. Объясните, как управлять границами на каждом шаг…
-
middle theory Расскажите, как решать задачу 'House Robber' с использованием динамического программирования. Объясните, как меняется подход при переходе от простой линейной в…