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.
Solution :
boolean almostIncreasingSequence(int[] sequence) {
int a = 0;
for(int i = 0; i < sequence.length - 1; i++){
if(sequence[i + 1] <= sequence[i]){
a = i + 1;
break;
}
}
if(isIncreasing(sequence,a)){
if(a != 1 && a != sequence.length - 1){
if(sequence[a - 2] < sequence[a] || sequence[a - 1] < sequence[a + 1])
return true;
else return false;
}
return true;
}
else{
if(sequence[a - 1] < sequence[a + 1] && isIncreasing(sequence, a + 1))
return true;
else return false;
}
}
boolean isIncreasing(int[] seq, int start){
int tag = 0;
for(int i = start; i < seq.length - 1; i++){
if(seq[i] >= seq[i + 1]){
tag++;
break;
}
}
if(tag != 0)
return false;
else return true;
}
Solution :
boolean almostIncreasingSequence(int[] sequence) {
int a = 0;
for(int i = 0; i < sequence.length - 1; i++){
if(sequence[i + 1] <= sequence[i]){
a = i + 1;
break;
}
}
if(isIncreasing(sequence,a)){
if(a != 1 && a != sequence.length - 1){
if(sequence[a - 2] < sequence[a] || sequence[a - 1] < sequence[a + 1])
return true;
else return false;
}
return true;
}
else{
if(sequence[a - 1] < sequence[a + 1] && isIncreasing(sequence, a + 1))
return true;
else return false;
}
}
boolean isIncreasing(int[] seq, int start){
int tag = 0;
for(int i = start; i < seq.length - 1; i++){
if(seq[i] >= seq[i + 1]){
tag++;
break;
}
}
if(tag != 0)
return false;
else return true;
}
Comments
Post a Comment