Ctrl K

Разнообразие слева против справа

Лёгкая
Дан массив values длины n. Для каждого индекса i разрежем массив сразу после него: левая часть — элементы с индексами от 0 до i включительно, правая — всё, что после i (она может оказаться пустой). Посчитайте, сколько **различных** значений в левой части, и вычтите из этого числа количество различных значений в правой части. Верните массив из n таких разностей — по одной для каждого i.
Пример 1
values=[4, 4, 7, 1] → [-2, -1, 1, 3]

Для индекса 0 слева {4} — одно значение, справа {4, 7, 1} — три, итого 1 − 3 = −2. Для индекса 1 слева по-прежнему {4}, справа {7, 1}: 1 − 2 = −1. Дальше 2 − 1 = 1 и 3 − 0 = 3.

Пример 2
values=[9] → [1]

Слева одно значение, справа ничего: 1 − 0 = 1.

Пример 3
values=[2, 5, 2, 5, 2] → [-1, 0, 0, 1, 2]
Ограничения
  • 1 ≤ len(values) ≤ 50
  • 1 ≤ values[i] ≤ 50
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПара с заданной суммой ЛёгкаяПобедитель с большинством голосов ЛёгкаяЕсть ли повтор ЛёгкаяПовтор в пределах окна ЛёгкаяПотерянный билет Лёгкая
загружаем Python…
Вход
values=[4, 4, 7, 1]
Ожидается
[-2, -1, 1, 3]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 106 тестов на сервере, включая скрытые.