Solve almostIncreasingSequence (Codefights)

后端 未结 15 1208
谎友^
谎友^ 2020-12-08 07:35

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.

15条回答
  •  既然无缘
    2020-12-08 08:01

    boolean almostIncreasingSequence(int[] sequence) {
        int length = sequence.length;
        if(length ==1) return true;
        if(length ==2 && sequence[1] > sequence[0]) return true;
        int count = 0;
        int index = 0;
        boolean iter = true;
    
        while(iter){
            index = checkSequence(sequence,index);
            if(index != -1){
                count++;
                index++;
                if(index >= length-1){
                    iter=false;
                }else if(index-1 !=0){
                    if(sequence[index-1] <= sequence[index]){
                        iter=false;
                        count++;
                    }else if(((sequence[index] <= sequence[index-2])) && ((sequence[index+1] <= sequence[index-1]))){
                        iter=false;
                        count++;                    
                    }
                }
            }else{
                iter = false;
            }
        }
        if(count > 1) return false;
        return true;
    }
    
     int checkSequence(int[] sequence, int index){
        for(; index < sequence.length-1; index++){
            if(sequence[index+1] <= sequence[index]){
                return index; 
            }
        }
        return -1;
    }
    

提交回复
热议问题