Maison >Java >javaDidacticiel >LeetCode & Q26-Supprimer les doublons du tableau trié-Facile

LeetCode & Q26-Supprimer les doublons du tableau trié-Facile

PHP中文网
PHP中文网original
2017-07-09 18:12:131497parcourir

Descriptions :

Étant donné un tableau trié, supprimez les doublons en place de telle sorte que chaque élément n'apparaisse que une fois et renvoie la nouvelle longueur.

N'allouez pas d'espace supplémentaire pour un autre tableau, vous devez le faire sur place avec une mémoire constante. Par exemple,

Tableau d'entrée donné nums = [1,1,2],

Votre fonction doit renvoyer length = 2, les deux premiers éléments de nums étant respectivement 1 et 2 Peu importe ce que vous laissez au-delà de la nouvelle longueur.

J'ai toujours eu des problèmes avec ce que j'ai écrit... J'ai utilisé une collection HashSet et je n'ai pas étudié ce type. Le résultat de sortie de [1,1,2] est toujours [1,1]

.

(Notez dans un cahier ce dont vous avez besoin pour étudier HashSet)

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

Voici les excellentes réponses

Solutions :

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

Il y a deux points à noter :

  1. Comme il peut y avoir plusieurs doublons, l'égalité ne peut pas être utilisée comme condition de jugement
  2. Faites attention à la différence entre j++ et ++j L'utilisation ici est très intelligente et nécessaire !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn