Найдите самый длинный подмассив, разница между соседними элементами которого равна K
Дан массив arr[] размера N и целое число K . Задача состоит в том, чтобы найти самый длинный подмассив с разницей между соседними элементами как K .
Примеры:
Input: arr[] = { 5, 5, 5, 10, 8, 6, 12, 13 }, K =1
Output: {12, 13}
Explanation: This is the longest subarray with difference between adjacents as 1.Input: arr[] = {4, 6, 8, 9, 8, 12, 14, 17, 15}, K = 2
Output: {4, 6, 8}
Подход: начиная с первого элемента массива, найдите первый допустимый подмассив и сохраните его длину и начальную точку. Затем, начиная со следующего элемента (первого элемента, который не был включен в первый подмассив), найдите другой допустимый подмассив и продолжайте обновлять максимальную длину и начальную точку . Повторяйте процесс до тех пор, пока не будут найдены все допустимые подмассивы, а затем распечатайте подмассив максимальной длины.
Ниже приведена реализация описанного выше подхода.
Временная сложность: O(N)
Вспомогательное пространство: O(1)