top of page

Interesting Problem

  • Writer: Lifesaving Linen
    Lifesaving Linen
  • Dec 5, 2017
  • 1 min read

Given a sequence of integers as an array, determine whether it is possible to obtain a strictly increasing sequence by removing no more than one element from the array.

Example

  • For sequence = [1, 3, 2, 1], the output should be almostIncreasingSequence(sequence) = false;

There is no one element in this array that can be removed in order to get a strictly increasing sequence.

  • For sequence = [1, 3, 2], the output should be almostIncreasingSequence(sequence) = true.

You can remove 3 from the array to get the strictly increasing sequence [1, 2]. Alternately, you can remove 2 to get the strictly increasing sequence [1, 3].

Input/Output

  • [time limit] 500ms (cpp)

  • [input] array.integer sequence

Guaranteed constraints: 2 ≤ sequence.length ≤ 105, -105 ≤ sequence[i] ≤ 105.

  • [output] boolean

Return true if it is possible to remove one element from the array in order to get a strictly increasing sequence, otherwise return false.

I tried testing each index and erasing it from a temporary vector copy, but that was too slow. I'm still in the process of figuring it out.

Comments


Single post: Blog_Single_Post_Widget
bottom of page