Skip to content

Instantly share code, notes, and snippets.

@ryanSN
Created April 15, 2017 19:55
Show Gist options
  • Save ryanSN/8444805f6085e7c37a8e0c6c29dafec6 to your computer and use it in GitHub Desktop.
Save ryanSN/8444805f6085e7c37a8e0c6c29dafec6 to your computer and use it in GitHub Desktop.
Javascript almost increasing sequence
function almostIncreasingSequence(sequence) {
var found = false;
for (var i=0;i<sequence.length;i++) {
if(sequence[i] <= sequence[i-1]) {
if(found) {
return false;
}
found = true;
if(i === 1 || i + 1 === sequence.length) {
continue;
}
else if (sequence[i] > sequence[i-2]) {
sequence[i-1] = sequence[i-2];
}
else if(sequence[i-1] >= sequence[i+1]) {
return false;
}
}
}
return true;
}
@dkeza
Copy link

dkeza commented Jul 25, 2018

Thank you, it works :)

@dohoangdinhtien
Copy link

Could you please explain your solution?
Thank you so much!

@WebDeg-Brian
Copy link

@dohoangdinhtien I believe the sequence is not almost increasing if there is more than one number that is less than its previous number. Hence the solution above

@mankhedekar96
Copy link

Great!!!

@st3no
Copy link

st3no commented Jul 4, 2019

function almostIncreasingSequence(sequence: number[]): boolean {
    var isFirst = true;
    for (var i = 0; i < sequence.length; i++) {
        if (sequence[i] >= sequence[i+1]) {
            if (isFirst) {
                isFirst = false;
                if (sequence[i-1] >= sequence[i+1] && sequence[i] >= sequence[i+2])
                {
                    return false;
                }
            }
            else return false;
        }
    }
    return true;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment