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

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

PHP中文网
Libérer: 2017-07-09 18:12:13
original
1484 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal