Учитывая массив из n элементов, как мне найти количество диапазонов [min (A [i], A [i + 1]), max (A [i], A [i + 1])]], которые содержит заданное значение k. Здесь i лежит между 0 <= a <b <n для индексации с нуля, где a и b являются индексами с нуля. </p>
Например, для массива ниже с a = 1 и b = 3 ;
6 3 2 8 5
Предположим, что для k = 3 его нужно найти в диапазоне [min (A [1], A [2]), max (A [1 ], A [2])] и [min (A [2], A [3]), max (A [2], A [3])]. Здесь k = 3 появляется в обоих диапазонах [2, 3] и [2, 8], поэтому ответ равен 2.
Как я могу найти количество диапазонов за менее чем линейное время при определенных предварительных вычислениях ?
Мне не нужен точный код, достаточно сделать общий обзор подхода / структуры данных.
Заранее спасибо!