Как определить непрерывность значений массива и найти разрывы? Есть предварительно отсортированный массив A из N целочисленных значений.
Требуется определить является ли он непрерывным, т.е. A[n+1] = A[n]+1 и разбить этот массив на подмассивы, где бы это условие соблюдалось.
Пока ничего в голову, кроме тупого перебора на проверку условия A[n+1] = A[n]+1 не пришло, хотел спросить, есть ли более быстрые способы?

21 Авг 2019 в 06:21
253 +1
0
Ответы
1

Для оптимизации процесса можно воспользоваться следующим алгоритмом:

Итерируемся по массиву A и проверяем условие A[n+1] = A[n]+1 для каждого элемента.Если условие выполняется, добавляем текущий элемент к текущему подмассиву.Если условие не выполняется, заканчиваем текущий подмассив и начинаем новый с текущего элемента.Повторяем шаги 2-3 до конца массива.

Таким образом, мы будем проходить по массиву всего один раз, добавляя элементы к текущему подмассиву, если они непрерывны, и начиная новый подмассив при обнаружении разрыва.

Этот алгоритм значительно уменьшит количество операций в сравнении с тупым перебором каждого элемента и проверкой условия.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 90 211 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир