Учитывая последовательность целых чисел в виде массива, определить, возможно ли получить строго возрастающую последовательность, удалив не более одного элемента из массива.
Примечание: последовательность a0, a1, ..., an считается строго возрастающей, если a0
Пример
Для последовательности = [1, 3, 2, 1] вывод должен быть almostIncreasingSequence(sequence) = false.
В этом массиве нет ни одного элемента, который можно было бы удалить, чтобы получить строго возрастающую последовательность.
Для sequence = [1, 3, 2], вывод должен быть almostIncreasingSequence(sequence) = true.
Вы можете удалить 3 из массива, чтобы получить строго возрастающую последовательность [1, 2]. Кроме того, вы можете удалить 2, чтобы получить строго возрастающую последовательность [1, 3].
Ввод / Вывод
[ограничение времени выполнения] 4 секунды (дротик)
[input] последовательность array.integer
Гарантированные ограничения:
2 ≤ sequence.length ≤ 105,
-105 ≤ sequence[i] ≤ 105.
[output] boolean Возвращает true, если возможно удалить один элемент из массива для получения строго возрастающей последовательности, в противном случае вернуть false.
Через некоторое время после попытки и отладка, я пришел к этому прекрасному решению:
Этот код очень хорошо работал со всеми "не скрытыми" тестами и любым списком, который я дал! Но когда я отправил его, код не прошел только ОДИН скрытый тест! Есть идеи, почему это не удалось?