Heim  >  Artikel  >  Java  >  LeetCode & Q26 – Duplikate aus sortierten Arrays entfernen – ganz einfach

LeetCode & Q26 – Duplikate aus sortierten Arrays entfernen – ganz einfach

PHP中文网
PHP中文网Original
2017-07-09 18:12:131430Durchsuche

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 jeweils 1 und 2 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:

  1. Da es mehrere Duplikate geben kann, kann Gleichheit nicht als Beurteilungsbedingung verwendet werden
  2. Achten Sie auf den Unterschied zwischen 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!

Stellungnahme:
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