Frage Beschreibung
Entfernen Sie bei einem sortierten Array doppelte Elemente aus dem Array, behalten Sie nur ein doppeltes Element bei und geben Sie die neue Arraylänge zurück.
Erfordern:
Ziehen Sie dem Array keinen zusätzlichen Platz zu, Sie müssen die Speichergröße der Konstante verwenden, um an Ort und Stelle zu arbeiten.
Zum Beispiel:
Angesichts des Arrays A = [1,1,2] muss Ihr Funktionsaufruf Länge = 2 zurückgeben, und A wird jetzt [1,2].
eingeben
Zum Beispiel ein sortiertes Array [1,1,2].
Ausgabe
Gibt die neue Länge des Arrays zurück, beispielsweise Länge = 2.
Schnelle und langsame Zeigermethode
Stellen Sie den schnellen Zeiger auf, um das Array und den langsamen Zeiger auf das nächste Bit des Nicht-Repeat-Elements zu durchqueren.
public static int rumedUplicate (int [] nums) {if (nums.Length <1) return nums.length; int langsam = 1; für (int fast = 1; fast <nums.length; fast ++) {if (nums [fast]! }} return langsam;}Animationsdemonstration:
Erweitert
Entfernt doppelte Elemente aus dem sortierten Array, wobei die angegebene Anzahl von Ziffern zurückbleibt.
public static int rumedUplicateSn (int [] nums, int repuoltn) {if (nums.Length <= repuoltn) return nums.length; int index = repeatn; für (int i = repepn; i <nums.length; i ++) {if (nums [i]! }} return index;}Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.