К собеседованиям
Order Capital

Алгоритмический тренажер

Алгоритмическая секция в Order Capital

Тип тренировки
Алгоритмы
Задач
3
Компания
Order Capital
Дата
2026-02-04
Задача 1EasyДва указателяСтабильное сжатие

Удаление нулей с сохранением порядка

Условие задачи

Дан массив целых чисел values.

Нужно удалить из него все нули так, чтобы относительный порядок остальных элементов сохранился.

В тренажере функция должна вернуть компактный список без нулей. Концептуально решение должно соответствовать in-place compaction: один указатель читает вход, второй указывает позицию, куда записать следующий ненулевой элемент.

Сигнатура

def remove_zeros_compact(values: list[int]) -> list[int]:

Ваше решение

Консоль
Нажмите «Запустить проверки» или Ctrl+Enter
Задача 2MediumБинарный поискГраницы

Сколько раз значение встречается в невозрастающем массиве

Условие задачи

Дан отсортированный невозрастающе массив values и число target.

Нужно вернуть, сколько раз target встречается в массиве.

Ожидаемое решение — не линейный проход, а два бинарных поиска:

  • найти первую позицию, где элемент <= target;
  • найти первую позицию, где элемент < target;
  • разность этих позиций и есть количество вхождений.

Сигнатура

def count_occurrences_desc(values: list[int], target: int) -> int:

Ваше решение

Консоль
Нажмите «Запустить проверки» или Ctrl+Enter
Задача 3MediumПодсчет по корзинамH-index

Минимальная стоимость после купонов

Условие задачи

Дан массив неотрицательных целых чисел citations.

H-index — максимальное такое k, что в массиве есть хотя бы k чисел со значением >= k.

Верните H-index.

Ожидаемое решение для этой версии — O(n) по времени и O(n) по памяти через bucket count. Значения больше n можно класть в bucket n, потому что ответ не может быть больше количества статей.

Сигнатура

def h_index(citations: list[int]) -> int:

Ваше решение

Консоль
Нажмите «Запустить проверки» или Ctrl+Enter