문제
첫 번째이자 유일한 인수로 숫자 배열, arr을 취하는 JavaScript 함수를 작성해야 합니다.
우리의 함수는 최대값과 최소값의 차이가 정확히 1인 부분배열의 길이를 찾아서 반환해야 합니다. .
예를 들어, 함수에 대한 입력이 -
인 경우const arr = [2, 4, 3, 3, 6, 3, 4, 8];
그러면 출력은 다음과 같아야 합니다. -
const output = 5;
출력 설명
원하는 하위 배열이 [4, 3, 3, 3, 4]
이기 때문에예시
다음은 코드입니다 -
const arr = [2, 4, 3, 3, 6, 3, 4, 8]; const longestSequence = (arr = []) => { const map = arr.reduce((acc, num) => { acc[num] = (acc[num] || 0) + 1 return acc }, {}) return Object.keys(map).reduce((max, key) => { const nextKey = parseInt(key, 10) + 1 if (map[nextKey] >= 0) { return Math.max( max, map[key] + map[nextKey], ) } return max }, 0); }; console.log(longestSequence(arr));
출력
다음은 콘솔 출력입니다 -
5