Дан массив A, длина n и натуральное число k, такое что 1 <= k <= n
.
Построить массив B размером n-k+1
, который удовлетворяет следующему:
каждый B[j]
- это максимум между A[j],A[j+1],...A[j+k-1]
предположим, чтобы решить в линейное время
например:
A = {3,1,5,12,13,4,2} size 7 and k = 3. desired answer would be -
B = {5,12,13,13,13}
Примечание; это не домашнее задание, а вопрос после экзамена, который мне трудно решить.
Попробовал использовать Double-Ended Queue, которая будет содержать максимум k элементов, но у меня возникла проблема с отслеживанием k-го максимума.