670. Maximaler Tausch
Schwierigkeit:Mittel
Themen:Mathe, Gierig
Sie erhalten eine ganzzahlige Zahl. Sie können höchstens einmal zwei Ziffern vertauschen, um die höchstwertige Zahl zu erhalten.
Geben Sie die maximale Wertzahl zurück, die Sie erhalten können.
Beispiel 1:
- Eingabe: num = 2736
- Ausgabe: 7236
- Erklärung:Vertauschen Sie die Zahl 2 und die Zahl 7.
Beispiel 2:
- Eingabe: num = 9973
- Ausgabe: 9973
- Erklärung:Kein Tausch.
Einschränkungen:
- 0 8
Lösung:
Wir können einen gierigen Ansatz verfolgen. Hier ist eine Schritt-für-Schritt-Erklärung und die Lösung:
Ansatz:
- Konvertieren Sie die Zahl in ein Array: Da Ziffern vertauscht werden müssen, erleichtert die Konvertierung der Zahl in ein Ziffern-Array den Zugriff auf und die Bearbeitung einzelner Ziffern.
- Verfolgen Sie das Vorkommen jeder Ziffer ganz rechts: Speichern Sie die Position ganz rechts jeder Ziffer (0-9) in einem Array.
- Finden Sie die beste Tauschmöglichkeit: Gehen Sie die Ziffern der Zahl von links nach rechts durch und prüfen Sie für jede Ziffer, ob später eine höhere Ziffer erscheint. Wenn ja, tauschen Sie sie aus, um die Anzahl zu maximieren.
- Führen Sie den Tausch und die Unterbrechung durch: Sobald der optimale Tausch gefunden wurde, führen Sie den Tausch durch und unterbrechen Sie die Schleife.
- Konvertieren Sie das Array zurück in eine Zahl: Konvertieren Sie nach dem Austausch das Array aus Ziffern zurück in eine Zahl und geben Sie es zurück.
Lassen Sie uns diese Lösung in PHP implementieren: 670. Maximaler Tausch
<?php /** * @param Integer $num * @return Integer */ function maximumSwap($num) { ... ... ... /** * go to ./solution.php */ } // Example usage: echo maximumSwap(2736); // Output: 7236 echo maximumSwap(9973); // Output: 9973 ?>
Erläuterung:
- Schritt 1: strval($num) wandelt die Ganzzahl in eine Zeichenfolge um und str_split($numStr) teilt sie in ein Array von Ziffern auf.
- Schritt 2: Das letzte Array verfolgt den Index ganz rechts jeder Ziffer von 0 bis 9.
- Schritt 3: Wir durchlaufen jede Ziffer und suchen nach einer größeren Ziffer, die ausgetauscht werden kann.
- Schritt 4: Wenn eine passende größere Ziffer gefunden wird (die später in der Zahl erscheint), werden die Ziffern vertauscht.
- Schritt 5: Das geänderte Array wird mit intval() zurück in einen String und dann in eine Ganzzahl konvertiert.
Komplexität:
- Zeitkomplexität: O(n), wobei n die Anzahl der Ziffern in num ist. Das liegt daran, dass wir einen Durchlauf durch die Zahl machen, um das letzte Array zu füllen, und einen weiteren Durchlauf, um den optimalen Swap zu finden.
- Raumkomplexität: O(1) (ohne Berücksichtigung der Eingabegröße), da das letzte Array auf 10 Elemente festgelegt ist.
Diese Lösung findet den Maximalwert effizient, indem die Ziffern nach Bedarf nur einmal ausgetauscht werden.
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:
- GitHub
Das obige ist der detaillierte Inhalt von. Maximaler Tausch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

TomakePhpapplicationsfaster, folgt der THESESTEPS: 1) UseOpCodeCaching LikeopcachetOstorePrecompiledScriptByteCode.2) MinimizedatabasequeriesByusedQueryCachingandefficiendexing.3) Hebel -FeaturesForbetTerCodeeffizienz.4) Implementierungspflichtiger Strategie

ToimProvePhpapplicationSpeed, folge theSeSteps: 1) enableOpCodeCachingWithAPCUToreducescriptexexexeTime.2) ImplementDatabaseQueryCachingusedpdotominimizedatabaseHits.3) UseHttp/2TomultiplexRequeTsReconneconneconneconneconneconneconnectionOverhead.4))

Die Abhängigkeitsinjektion (DI) verbessert die Testbarkeit von PHP -Code durch explizit transitive Abhängigkeiten signifikant. 1) DI -Entkopplungsklassen und spezifische Implementierungen machen Tests und Wartung flexibler. 2) Unter den drei Typen injiziert der Konstruktor explizite Expressionsabhängigkeiten, um den Zustand konsistent zu halten. 3) Verwenden Sie DI -Container, um komplexe Abhängigkeiten zu verwalten, um die Codequalität und die Entwicklungseffizienz zu verbessern.

DatabaseQueryoPtimizationInphpinvolvesseveralStrategieShancePerformance.1) selectonlynn -nötigesColumntededatatransfer.2) Verwenden Sie IndexingTospeedUpDatarErvieval.3) ImplementQueryCachingtoStoreresultsOffRequerien.4) Nützliche Stände

PhpisusedForSensionsemailsDuetoitsbuilt-inmail () functionandSupportelibrary-LikephpmailerandSwiftmailer.1) UsetheMail () Funktionsbasicemails, Butithaslimitations.2) Verwenden SiePr

PHP -Performance -Engpässe können in den folgenden Schritten gelöst werden: 1) Verwenden Sie XDEBUG oder Blackfire für die Leistungsanalyse, um das Problem herauszufinden. 2) Datenbankabfragen optimieren und Caches wie APCU verwenden; 3) Verwenden Sie effiziente Funktionen wie Array_filter, um Array -Operationen zu optimieren. 4) Opcache für Bytecode -Cache konfigurieren; 5) Optimieren Sie das Front-End, z. B. die Reduzierung von HTTP-Anfragen und das Optimieren von Bildern; 6) Überwachen und optimieren Sie die Leistung kontinuierlich. Durch diese Methoden kann die Leistung von PHP -Anwendungen erheblich verbessert werden.

Abhängigkeitsinjektion (DI) InphpisadesignPatternThatManageSandRecesClass -Dependenzen, EnhancingCodemodularity, Testbarkeit und Maschinenbarkeit.itallowsspassingdependencieStaDatabaseConnectionStoclassesasparameters, Erleichterung der Erleichterung von Erleichterung von Vermittlungen und Erleichterung von Erleichterung von und scalierbarkeit.

CachingimProvePhpperformanceByStoringResultsofComputationsorquerienforquickretrieval, ReducingServerloadAnenHancingResponSetimes.EffectivestrategieSinclude: 1) OpcodeCaching, die storesCompiledPhpScriptsinmemorytoskipcompilation;


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

SecLists
SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
