Войти Регистрация
Алгоритмы

71. Ближайшие документы по косинусу

Средняя

Даны векторы документов docs, вектор запроса query той же размерности и число k. Косинусное сходство — скалярное произведение, делённое на произведение длин векторов.

Верните индексы k документов с наибольшим сходством, по убыванию сходства; при равенстве — меньший индекс раньше. Нулевых векторов нет.

В работе: Подобрать k самых похожих обращений в поддержку к новому по эмбеддингам.

Пример 1

Ввод
docs = [[1, 0], [0, 1], [1, 1]]
query = [1, 0]
k = 2
Вывод
[0, 2]

Сходство 1, 0 и 0,707.

Ограничения

  • 1 ≤ k ≤ число документов ≤ 10⁴
  • Размерность ≤ 300
  • Лимит — 1 с на тест.
Как вызывается ваш код Читать ввод и печатать ответ не нужно: мы вызываем функцию на каждом тесте и сравниваем то, что она вернула. print() и console.log() уходят в консоль.
def top_k_cosine(docs, query, k):
ВекторыКучаСортировкацельO(n log n)

Источник: Сбер, Data Scientist NLP, гайд h.careers, 2026. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.