Создайте массив размера N, где MEX каждого подмассива размера K равен X
Даны три целых числа N , K и X . Задача состоит в том, чтобы создать массив размера N , где MEX каждого подмассива размера K равен X . Выведите построенные элементы массива, если это невозможно, выведите -1.
Примеры:
Input: N = 4, K = 3, X = 2
Output: 1 3 4 1
Explanation: Subarray of size K = 3 are: {1, 3, 4} and {3, 4, 1} and MEX of both the arrays are X = 2.
Input: N = 5, K = 4, X = 5
Output: 1 2 3 4 1
Explanation: Subarray of size K = 4 are: {1, 2, 3, 4} and {2, 3, 4, 1} and MEX of both the array is X = 5.
Подход: Решение проблемы основано на простом наблюдении. Если X не больше (K+1), то массив можно построить. В противном случае его невозможно построить. Выполните шаги, указанные ниже, чтобы решить проблему:
- Инициализировать массив nums[] размера N .
- Если значение X больше, чем K+1, массив невозможен.
- Заполните первые K индексов, начиная с 1 , и каждый раз увеличивайте значение на 1 для остальных индексов. Пропустите значение X , когда оно должно быть заполнено.
- После этого заполните остальные индексы, т.е. из K ≤ i ≤ N значением nums[i – K] .
- Массив nums[] является обязательным массивом.
Ниже приведена реализация вышеуказанного подхода:
Временная сложность: НА)
Вспомогательное пространство: НА)