prices записана цена акции по дням — история может быть очень длинной. Аналитик описывает интересующую его динамику массивом trend из чисел -1, 0 и 1: 1 — на следующий день цена выросла, 0 — не изменилась, -1 — упала.
Отрезок из len(trend) + 1 подряд идущих дней подходит под шаблон, если для каждого j переход от его j-го дня к следующему ведёт себя так, как говорит trend[j].
Верните количество подходящих отрезков. Отрезки могут пересекаться.
Перебор всех отрезков с проверкой шаблона целиком здесь слишком медленный — нужно решение за время, линейное от len(prices) + len(trend).prices=[4, 6, 6, 2, 3, 8, 8, 5, 5], trend=[1, 0, -1] → 2
Шаблон «вверх, без изменений, вниз» подходит отрезкам [4, 6, 6, 2] и [3, 8, 8, 5].
prices=[1, 2, 3, 4, 5], trend=[1, 1] → 3
Два роста подряд: [1, 2, 3], [2, 3, 4] и [3, 4, 5] — отрезки могут пересекаться.
prices=[7, 7], trend=[-1] → 0
prices) ≤ 10⁶prices[i] ≤ 10⁹trend) < len(prices)trend[j] — одно из чисел -1, 0, 1prices=[4, 6, 6, 2, 3, 8, 8, 5, 5], trend=[1, 0, -1]
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 114 тестов на сервере, включая скрытые.