2657. Finden Sie das Präfix Common Array of Two Arrays
Schwierigkeit:Mittel
Themen:Array, Hash-Tabelle, Bitmanipulation
Sie erhalten zwei 0-indizierte ganzzahlige Permutationen A und B der Länge n.
Ein präfixgemeinsames Array von A und B ist ein Array C, so dass C[i] gleich der Anzahl der Zahlen ist, die am oder vor dem Index i in A und B vorhanden sind.
Gibt das präfixgemeinsame Array von A und B zurück.
Eine Folge von n ganzen Zahlen wird als Permutation bezeichnet, wenn sie alle ganzen Zahlen von 1 bis n genau einmal enthält.
Beispiel 1:
Beispiel 2:
Einschränkungen:
Hinweis:
Lösung:
Wir können über die beiden Arrays A und B iterieren und dabei die Zahlen verfolgen, die am oder vor dem aktuellen Index in beiden Arrays aufgetreten sind. Da beide Arrays Permutationen desselben Zahlensatzes sind, können wir zwei Hash-Sets (oder Arrays) verwenden, um zu speichern, welche Zahlen am oder vor dem aktuellen Index in beiden Arrays erschienen sind. Für jeden Index können wir die gemeinsamen Zahlen zählen, die bis zu diesem Zeitpunkt in beiden Arrays aufgetreten sind.
Lassen Sie uns diese Lösung in PHP implementieren: 2657. Finden Sie das Präfix Common Array of Two Arrays
<?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> Erläuterung: </h3> <ol> <li> <strong>Frequenzarrays</strong>: Wir pflegen zwei Frequenzarrays, freqA und freqB, wobei jeder Index eine Zahl in der Permutation darstellt. <ul> <li>Wenn wir auf eine Zahl in A[i] oder B[i] stoßen, erhöhen wir den entsprechenden Wert im Häufigkeitsarray.</li> </ul> </li> <li> <strong>Common Count</strong>: Nachdem wir die Häufigkeits-Arrays für A[i] und B[i] aktualisiert haben, prüfen wir für jede Zahl, ob sie in beiden Arrays bis zum Index i vorgekommen ist. Wenn ja, erhöhen wir den commonCount.</li> <li> <strong>Ergebnis</strong>: Die gemeinsame Anzahl wird im Ergebnisarray für jeden Index gespeichert.</li> </ol> <h3> Beispielhafte Vorgehensweise: </h3> <p>Zur Eingabe:<br> </p> <pre class="brush:php;toolbar:false">$A = [1, 3, 2, 4]; $B = [3, 1, 2, 4];
Ausgabe: [0, 2, 3, 4]
Dies sollte innerhalb der gegebenen Einschränkungen effektiv funktionieren.
Kontaktlinks
Wenn Sie diese Serie hilfreich fanden, denken Sie bitte darüber nach, dem Repository einen Stern auf GitHub zu geben oder den Beitrag in Ihren bevorzugten sozialen Netzwerken zu teilen? Ihre Unterstützung würde mir sehr viel bedeuten!
Wenn Sie weitere hilfreiche Inhalte wie diesen wünschen, folgen Sie mir gerne:
Das obige ist der detaillierte Inhalt vonFinden Sie das gemeinsame Präfix-Array zweier Arrays. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!