2657. 두 배열의 접두사 공통 배열 찾기
난이도:중
주제: 배열, 해시 테이블, 비트 조작
길이가 n인 두 개의 인덱스가 0인 정수 순열 A와 B가 제공됩니다.
A와 B의 접두사 공통 배열은 C[i]가 A와 B 모두에서 인덱스 i 또는 그 앞에 존재하는 숫자의 개수와 동일한 배열 C입니다.
A와 B의 접두사 공통 배열을 반환합니다.
n개의 정수 시퀀스가 1부터 n까지의 모든 정수를 정확히 한 번 포함하는 경우 순열이라고 합니다.
예 1:
예 2:
제약조건:
힌트:
해결책:
두 배열의 현재 인덱스 또는 그 이전에 발생한 숫자를 추적하면서 두 배열 A와 B를 반복할 수 있습니다. 두 배열 모두 동일한 숫자 집합의 순열이므로 두 개의 해시 집합(또는 배열)을 활용하여 두 배열의 현재 인덱스 또는 그 이전에 어떤 숫자가 나타나는지 저장할 수 있습니다. 각 인덱스에 대해 해당 시점까지 두 배열에 모두 나타난 공통 숫자를 계산할 수 있습니다.
PHP에서 이 솔루션을 구현해 보겠습니다: 2657. 두 배열의 접두사 공통 배열 찾기
<?php /** * @param Integer[] $A * @param Integer[] $B * @return Integer[] */ function findThePrefixCommonArray($A, $B) { ... ... ... /** * go to ./solution.php */ } // Example usage: $A = [1, 3, 2, 4]; $B = [3, 1, 2, 4]; print_r(findThePrefixCommonArray($A, $B)); // Output: [0, 2, 3, 4] $A = [2, 3, 1]; $B = [3, 1, 2]; print_r(findThePrefixCommonArray($A, $B)); // Output: [0, 1, 3] ?> <h3> 설명: </h3> <ol> <li> <strong>주파수 배열</strong>: 두 개의 주파수 배열인 freqA와 freqB를 유지합니다. 여기서 각 인덱스는 순열의 숫자를 나타냅니다. <ul> <li>A[i] 또는 B[i]에서 숫자를 발견하면 주파수 배열에서 해당 값을 증가시킵니다.</li> </ul> </li> <li> <strong>공통 개수</strong>: A[i]와 B[i] 모두에 대한 주파수 배열을 업데이트한 후 각 숫자가 인덱스 i까지 두 배열에 모두 나타나는지 확인합니다. 그렇다면 commonCount를 늘립니다.</li> <li> <strong>결과</strong>: 각 인덱스에 대한 결과 배열에 공통 개수가 저장됩니다.</li> </ol> <h3> 예제 연습: </h3> <p>입력:<br> </p> <pre class="brush:php;toolbar:false">$A = [1, 3, 2, 4]; $B = [3, 1, 2, 4];
출력: [0, 2, 3, 4]
주어진 제약 내에서 효과적으로 작동해야 합니다.
연락처 링크
이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!
이렇게 더 유용한 콘텐츠를 원하시면 저를 팔로우해주세요.
위 내용은 두 배열의 접두사 공통 배열 찾기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!