К задачам

Разреженный вектор и эффективное скалярное произведение

СредняяАлгоритмы
Лучше работает на десктопе
Хеш-таблицаРазреженный векторООП

Реализуйте класс SparseVector для разреженных векторов.

Конструктор получает длину вектора и список пар [index, value]. Нулевые значения хранить не нужно. Метод dot(other) должен вернуть скалярное произведение двух векторов и работать по меньшему числу ненулевых координат.

В тренажере используется wrapper sparse_vector_dot: он создает два вектора и вызывает dot. Если длины векторов различаются, wrapper должен вернуть строку "length_mismatch".

Сигнатура

def sparse_vector_dot(length_a: int, values_a: list[list[int]], length_b: int, values_b: list[list[int]]) -> int:

Примеры

Пример 1

Вход:
self = 5
length = [[0,1],[3,2]]
values = 5
arg4 = [[3,4],[4,5]]
Выход:8

Пример 2

Вход:
self = 4
length = [[0,7],[2,0]]
values = 4
arg4 = [[1,3],[3,9]]
Выход:0

Пример 3

Вход:
self = 3
length = [[0,-2],[2,5]]
values = 3
arg4 = [[0,4],[2,-1]]
Выход:-13
Код
Python · Ctrl/⌘ + Enter для запуска
Лимит
07:00
Консоль
Нажмите кнопку запуска или Ctrl+Enter
SparseVector и эффективный dot product — Алгоритмы задача — ML Mentor