Минимальный MEX из всех подмассивов длины K

Опубликовано: 19 Сентября, 2022

Учитывая массив arr[] , состоящий из N различных положительных целых чисел и целого числа K , задача состоит в том, чтобы найти минимальный MEX из всех подмассивов длины K .

The MEX is the smallest positive integer that is not present in the array.

Примеры:

Input: arr[] = {1, 2, 3}, K = 2
Output: 1
Explanation:
All subarrays of length 2 are {1, 2}, {2, 3}.
In subarray {1, 2}, the smallest positive integer which is not present is 3.
In subarray {2, 3}, the smallest positive integer which is not present is 1.
Therefore, the minimum of all the MEX for all subarrays of length K (= 2) is 1.

Input: arr[] = {1, 2, 3, 4, 5, 6}, K = 3
Output: 1

Наивный подход: самый простой подход к решению проблемы состоит в том, чтобы сгенерировать все подмассивы длины K и найти MEX для каждого подмассива. После нахождения всех MEX выведите минимум из полученных.
Временная сложность: O(K * N 2 )
Вспомогательное пространство: O(1)

Эффективный подход. Описанный выше подход также можно оптимизировать с помощью метода «Установить и скользящее окно». Выполните следующие шаги, чтобы решить проблему:

  • Инициализируйте переменную, скажем, mex , чтобы сохранить минимум среди всех MEX подмассивов размера K.
  • Инициализируйте набор S для хранения значений, которых нет в текущем подмассиве. Изначально вставьте в него все числа из диапазона [1, N + 1] , потому что изначально размер окна равен 0 .
  • Перебрать диапазон [0, K – 1] и удалить элемент arr[i] из набора.
  • Теперь первым элементом набора является MEX подмассива в диапазоне [0, K] и сохраните это значение в mex .
  • Теперь выполните итерацию по диапазону [K, N – 1] и выполните следующие шаги:
    • Вставьте элемент arr[i] в набор.
    • Сотрите elementarr[i – K] из набора.
    • Теперь первым элементом набора является MEX для текущего подмассива. Поэтому обновите значение mex до минимума mex и первого элемента набора .
  • После выполнения вышеуказанных шагов выведите значение mex в качестве минимального MEX среди всех подмассивов размера K.

Ниже приведена реализация вышеуказанного подхода:

Временная сложность: O(N)
Вспомогательное пространство: O(N)