Beschreibungen:
Entfernen Sie bei einem sortierten Array die vorhandenen Duplikate, sodass jedes Element nur einmal vorkommt, und geben Sie die neue Länge zurück.
Reservieren Sie keinen zusätzlichen Speicherplatz für ein anderes Array. Sie müssen dies direkt mit konstantem Speicher tun. Beispiel:
Gegebenes Eingabearray nums =
[1,1,2]
,Ihre Funktion sollte die Länge =
2
zurückgeben, wobei die ersten beiden Elemente von nums jeweils1
und2
sind. Es spielt keine Rolle, was Sie über die neue Länge hinaus belassen.
Ich hatte immer Probleme mit dem, was ich geschrieben habe ... Ich habe eine HashSet-Sammlung verwendet und diesen Typ nicht studiert. Das Ausgabeergebnis von [1,1,2] ist immer [1,1]
(Notieren Sie in einem Notizbuch, was Sie zum Lernen von HashSet benötigen)
<code class="sourceCode java"><span class="kw">import java.util.HashSet;</span> <span class="kw">import java.util.Set;</span> <span class="kw">public</span> <span class="kw">class</span> Solution { <span class="kw">public</span> <span class="dt">static</span> <span class="dt">int</span> <span class="fu">removeDuplicates</span>(<span class="dt">int</span>[] nums) { Set<Integer> tempSet = <span class="kw">new</span> HashSet<>(); <span class="kw">for</span>(<span class="dt">int</span> i = <span class="dv">0</span>; i < nums.<span class="fu">length</span>; i++) { Integer wrap = Integer.<span class="fu">valueOf</span>(nums[i]); tempSet.<span class="fu">add</span>(wrap); } <span class="kw">return</span> tempSet.<span class="fu">size</span>(); } }</code>
Hier sind die hervorragenden Antworten
Lösungen:
<code class="sourceCode java"><span class="kw">public</span> <span class="kw">class</span> Solution { <span class="kw">public</span> <span class="dt">static</span> <span class="dt">int</span> <span class="fu">removeDuplicates</span>(<span class="dt">int</span>[] nums) { <span class="dt">int</span> j = <span class="dv">0</span>; <span class="kw">for</span>(<span class="dt">int</span> i = <span class="dv">0</span>; i < nums.<span class="fu">length</span>; i++) { <span class="kw">if</span>(nums[i] != nums[j]) { nums[++j] = nums[i]; } } <span class="kw">return</span> ++j; } }</code>
Es sind zwei Punkte zu beachten:
j++
und ++j
. Die Verwendung hier ist sehr klug und notwendig! Das obige ist der detaillierte Inhalt vonLeetCode & Q26 – Duplikate aus sortierten Arrays entfernen – ganz einfach. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!