정수 시퀀스가 배열로 주어지면 배열에서 요소를 하나만 제거하여 엄격하게 증가하는 시퀀스를 얻을 수 있는지 확인합니다.
시퀀스 a0, a1, ..., an은 a0
예시
시퀀스 =[1, 3, 2, 1]의 경우 출력은 -
여야 합니다.almostIncreasingSequence(sequence) = false.
이 배열에는 엄격하게 증가하는 시퀀스를 얻기 위해 제거할 수 있는 요소가 없습니다.
시퀀스 =[1, 3, 2]의 경우 출력은 -
여야 합니다.almostIncreasingSequence(sequence) = true.
엄격하게 증가하는 시퀀스 [1, 2]를 얻기 위해 배열에서 3을 제거할 수 있습니다. 또는 2를 제거하여 엄격하게 증가하는 시퀀스[1, 3]를 얻을 수 있습니다.
예시
다음은 코드입니다 -
const arr1 = [3, 5, 67, 98, 3]; const arr2 = [4, 3, 5, 67, 98, 3]; const almostIncreasingSequence = sequence => { let removed = 0; let i = 0; let prev = -Infinity; while(removed < 2 && i < sequence.length) { if(sequence[i] > prev) { prev = sequence[i]; }else{ prev = Math.min(prev, sequence[i]); removed++; } i++; } return removed < 2; }; console.log(almostIncreasingSequence(arr1)); console.log(almostIncreasingSequence(arr2));
출력
이것은 콘솔에 다음과 같은 출력을 생성합니다 -
true false