증가 시퀀스
arr[i] <=arr[i + 1]이 (0 <=i <=n - 2)와 같은 모든 i(0부터 시작)에 대해 유지되는 경우 배열을 증가하는 것으로 정의합니다.
문제
첫 번째이자 유일한 인수로 정수 배열 arr을 취하는 JavaScript 함수를 작성해야 합니다.
우리 함수는 배열의 최대 하나의 요소를 수정하여 이 배열을 증가하는 배열로 변환할 수 있는지 여부를 결정해야 합니다.
그렇게 할 수 있으면 true를, 그렇지 않으면 false를 반환해야 합니다.
예를 들어 함수에 대한 입력이
인 경우입력
const arr = [8, 3, 3, 7, 9];
출력
const output = true;
출력 설명
원하는 배열을 얻기 위해 인덱스 0의 8을 1 또는 2로 바꿀 수 있기 때문입니다.
예시
다음은 코드입니다 -
const arr = [8, 3, 3, 7, 9]; const canConvert = (arr = []) => { const find = () => { for (let i = 1; i < arr.length; i++) { if (arr[i] < arr[i - 1]) { return false } } return true } for (let i = 0; i < arr.length; i++) { if (arr[i] < arr[i - 1]) { const temp = arr[i] arr[i] = arr[i - 1] if (find(arr)) { return true } arr[i] = temp arr[i - 1] = arr[i] return find(arr) } } return true } console.log(canConvert(arr));
출력
true