>  기사  >  웹 프론트엔드  >  해결책: Lario 및 Muigi 파이프 문제

해결책: Lario 및 Muigi 파이프 문제

PHPz
PHPz원래의
2024-09-04 16:38:101007검색

Solution: Lario and Muigi Pipe Problem

이슈
불량배 배관공과 그의 형이 또 뛰어다니면서 무대를 훼손한 것 같습니다.

더 이상 불만 사항이 접수되기 전에 레벨의 스테이지를 연결하는 파이프를 수리해야 합니다.

첫 번째 파이프 이후의 각 파이프가 이전 파이프보다 1 더 많으면 파이프가 올바른 것입니다.

과제
오름차순으로 정렬된 고유 숫자 목록이 주어지면 최소값부터 최대값(둘 다 포함)까지 각 인덱스에 대해 값이 1씩 증가하도록 새 목록을 반환합니다.


입력: 1,3,5,6,7,8 출력: 1,2,3,4,5,6,7,8

솔루션 분석

1단계:

먼저 최대값과 최소값을 찾아야 합니다. 나는 당신이 무슨 생각을 하는지 알고 있습니다. 우리는 Math.max와 Math.min을 사용할 수 있습니다.

이 시나리오에서는 그렇지 않습니다. 유효한 접근 방식이지만 입력 목록이 이미 오름차순으로 정렬되어 있으므로 불필요합니다.

정렬되면 인덱스 0(예: 숫자[0])의 요소가 마지막 요소와 동일하게 가장 작은 값임을 보장합니다. 따라서 첫 번째 요소와 마지막 요소에 직접 액세스하는 것이 더 효율적이고 간단합니다.

따라서 인덱스 0과 마지막 숫자에서 숫자를 찾고 일부 변수를 초기화하여 이러한 값을 저장합니다.

    let minVal = numbers[0];
    let maxVal = numbers[numbers.length - 1];

2단계:

그런 다음 새로 정렬된 값을 저장할 빈 배열을 만듭니다.

    let newNums = [];

3단계:

전체 목록을 반복

i = minVal; 루프 카운터 i를 minVal 값으로 초기화합니다. 이것이 우리의 루프가 시작되는 곳입니다.

i <= maxVal; 루프 조건입니다. i가 maxVal보다 작거나 같은 한 루프는 계속 실행됩니다. maxVal을 초과하면 루프가 중지됩니다.

i++는 증분자 역할을 합니다. for 루프를 반복할 때마다 i 값이 1씩 증가합니다

4단계:

그런 다음 array.push() 메소드를 사용하여 빈 배열 newNums에 증가된 i 값을 추가합니다.

그런 다음 newNums 배열의 최종 값을 반환합니다.

최종 솔루션

function pipeFix(numbers) {

    //   find the minimum and maximum values in the list
    let minVal = numbers[0];
    let maxVal = numbers[numbers.length - 1];

    //   create an array to store the sorted values in ascending order
    let newNums = [];

    //   loop through the sorted array, from smallest value to the largest
    for (let i = minVal; i <= maxVal; i++) {
        newNums.push(i);
    }

    return newNums;
}

이 글이 도움이 되었으면 좋겠습니다. 글이 마음에 드셨다면 좋아요를 남겨주시고, 궁금한 점은 댓글로 남겨주세요. 오늘은 여기까지입니다.

위 내용은 해결책: Lario 및 Muigi 파이프 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.