Leetcode – Die zwei hinterhältigen Zahlen von Digitville
Es ist ein einfaches Problem mit der Beschreibung:
In der Stadt Digitville gab es eine Liste mit Zahlen namens Nums, die ganze Zahlen von 0 bis n - 1 enthielt. Jede Zahl sollte genau einmal in der Liste auftauchen, jedoch schlichen sich noch zwei schelmische Zahlen ein Die Liste ist länger als üblich.
Als Stadtdetektiv besteht Ihre Aufgabe darin, diese beiden hinterhältigen Zahlen zu finden. Geben Sie ein Array der Größe zwei zurück, das die beiden Zahlen enthält (in beliebiger Reihenfolge), damit in Digitville wieder Frieden einkehren kann.
Beispiel 1:
Eingabe: nums = [0,1,1,0]
Ausgabe: [0,1]
Erklärung:
Die Zahlen 0 und 1 erscheinen jeweils zweimal im Array.
Beispiel 2:
Eingabe: nums = [0,3,2,1,3,2]
Ausgabe: [2,3]
Erklärung:
Die Zahlen 2 und 3 erscheinen jeweils zweimal im Array.
Beispiel 3:
Eingabe: nums = [7,1,5,4,3,4,6,0,9,5,8,2]
Ausgabe: [4,5]
Erklärung:
Die Zahlen 4 und 5 erscheinen jeweils zweimal im Array.
Einschränkungen:
2 <= n <= 100
nums.length == n 2
0 <= nums[i] < n
Die Eingabe wird so generiert, dass nums genau zwei wiederholte Elemente enthält.
Für dieses Problem gibt es viele Möglichkeiten, es zu lösen. Sie könnten eine Menge, eine Karte, ein Array als Karte verwenden und sogar Bits verwenden, aber da es sich um ein einfaches Problem handelt, sollten wir vielleicht nicht zu tief in den Kaninchenbau vordringen.
Für die Lösung habe ich einen einfachen Ansatz gewählt, der darin besteht, das Array zu sortieren und dann in einer Iteration zu prüfen, ob die vorherige Zahl gleich ist. Wenn ja, füge ich sie zu meinem Ergebnis hinzu und das war’s:
class Solution { public int[] getSneakyNumbers(int[] nums) { // build the response and the pivot for the first item of the response array int pivot = 0; int[] response = new int[2]; // sort nums array to make it easy to identify duplication Arrays.sort(nums); // iterate and numbers nearby are the ones considered sneaky, grab them and add into the response for(int i=1;i<nums.length;i++) { if(nums[i-1]==nums[i]){ response[pivot] = nums[i]; pivot++; } } // return response return response; } }
Laufzeit: 2 ms, schneller als 70,75 % der Java-Online-Einreichungen.
Speichernutzung: 44,49 MB, weniger als 86,86 % der Java-Online-Einreichungen.
Wenn Sie sicher sind, dass es nicht mehr als zwei sein werden, können Sie eine zusätzliche Prüfung durchführen, aber ansonsten erfüllt diese Lösung die meisten ihrer Anforderungen.
—
Das ist es! Wenn es sonst noch etwas zu besprechen gibt, können Sie gerne einen Kommentar hinterlassen. Wenn ich etwas verpasst habe, lassen Sie es mich wissen, damit ich es entsprechend aktualisieren kann.
Bis zum nächsten Beitrag! :)
Das obige ist der detaillierte Inhalt vonLeetcode – Die zwei hinterhältigen Zahlen von Digitville. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Fehlerbehebung und Lösungen für die Sicherheitssoftware des Unternehmens, die dazu führt, dass einige Anwendungen nicht ordnungsgemäß funktionieren. Viele Unternehmen werden Sicherheitssoftware bereitstellen, um die interne Netzwerksicherheit zu gewährleisten. ...

Die Verarbeitung von Feldzuordnungen im Systemdocken stößt häufig auf ein schwieriges Problem bei der Durchführung von Systemdocken: So kartieren Sie die Schnittstellenfelder des Systems und ...

Bei Verwendung von MyBatis-Plus oder anderen ORM-Frameworks für Datenbankvorgänge müssen häufig Abfragebedingungen basierend auf dem Attributnamen der Entitätsklasse erstellt werden. Wenn Sie jedes Mal manuell ...

Lösungen zum Umwandeln von Namen in Zahlen zur Implementierung der Sortierung in vielen Anwendungsszenarien müssen Benutzer möglicherweise in Gruppen sortieren, insbesondere in einem ...

Beginnen Sie den Frühling mit der Intellijideaultimate -Version ...

Konvertierung von Java-Objekten und -Arrays: Eingehende Diskussion der Risiken und korrekten Methoden zur Konvertierung des Guss-Typs Viele Java-Anfänger werden auf die Umwandlung eines Objekts in ein Array stoßen ...

Detaillierte Erläuterung des Designs von SKU- und SPU-Tabellen auf E-Commerce-Plattformen In diesem Artikel werden die Datenbankdesignprobleme von SKU und SPU in E-Commerce-Plattformen erörtert, insbesondere wie man mit benutzerdefinierten Verkäufen umgeht ...

Wenn Sie TKMybatis für Datenbankabfragen verwenden, ist das Aufbau von Abfragebedingungen ein häufiges Problem. Dieser Artikel wird ...
