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 respectivement1
et2
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 :
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!