5014. Проверка отсортированного и повёрнутого массива

Easy 3 решили
Дан целочисленный массив nums. Проверьте, можно ли получить его из неубывающего массива одним циклическим сдвигом (в том числе нулевым — когда сдвиг не нужен). Верните true, если да, и false иначе.

Неубывающий массив — каждый следующий элемент не меньше предыдущего: a[0] ≤ a[1] ≤ … ≤ a[n−1] (равные значения разрешены).

Циклический сдвиг — перенос префикса в конец (или суффикса в начало) без изменения относительного порядка остальных элементов. Например, из [1, 2, 3, 4, 5] сдвигом на 2 позиции влево получается [3, 4, 5, 1, 2].

Иначе говоря: существует ли неубывающий массив, который после одного циклического сдвига совпадает с nums?

nums = [3, 4, 5, 1, 2]

Неубывающий массив:  [1, 2, 3, 4, 5]
Циклический сдвиг:   префикс [1, 2] переносим в конец
Получается:          [3, 4, 5, 1, 2]

Ответ: true

Примеры:

Вход: [3, 4, 5, 1, 2]
Выход: true
Объяснение: Это неубывающий массив [1, 2, 3, 4, 5] после циклического сдвига на 2 позиции влево: префикс [1, 2] переносится в конец.
Вход: [2, 1, 3, 4]
Выход: false
Объяснение: Два «спада»: 2→1 и при замыкании круга 4→2. Неубывающий массив одним сдвигом так получить нельзя (например, [1, 2, 3, 4] любым одним сдвигом не даёт этот порядок).
Вход: [1, 2, 3]
Выход: true
Объяснение: Массив уже неубывающий — это нулевой циклический сдвиг. Ответ true.
Вход: [1, 1, 1]
Выход: true
Объяснение: Все элементы равны — массив неубывающий, сдвиг не обязателен.
Вход: [5, 4, 3, 2, 1]
Выход: false
Объяснение: Строго убывающий порядок: при обходе по кругу спада слишком много. Это не один поворот неубывающего массива.

Ограничения:

1 <= nums.length <= 100 1 <= nums[i] <= 100

Теги:

Массивы

Комментарии (0)

Зарегистрируйтесь или войдите, чтобы оставить комментарий

Пока нет комментариев. Будьте первым!