Heim > Java > javaLernprogramm > Leetcode – Die zwei hinterhältigen Zahlen von Digitville

Leetcode – Die zwei hinterhältigen Zahlen von Digitville

Barbara Streisand
Freigeben: 2025-01-04 04:56:43
Original
1028 Leute haben es durchsucht

Leetcode — The Two Sneaky Numbers of 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;
    } 
}
Nach dem Login kopieren

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage