English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java élimine les éléments duplicats d'un tableau trié

Description du problème

Donner un array trié, supprimer les éléments répétés de l'array, ne garder qu'un seul élément répété, et retourner la nouvelle longueur de l'array.

Exigences :
Ne pas allouer d'espace supplémentaire à l'array, vous devez utiliser une taille de mémoire constante pour l'opération en place.

Par exemple :
Donner l'array A=[1,1,2],l'appel de votre fonction doit retourner la longueur length=2,et maintenant A devient [1,2]。

Entrée

Un array trié, par exemple [1,1,2]。

Sortie

Retourner la nouvelle longueur de l'array, par exemple length=2.

Méthode des pointeurs rapide et lent

Définir les pointeurs fast et slow pour parcourir l'array, où le pointeur slow pointe sur l'élément non répété suivant.

public static int removeDuplicates(int[] nums)
{
  if (nums.length < 1);
    return nums.length;
  int slow = 1;
  for (int fast = 1; fast < nums.length; fast++) {
    if (nums[fast] != nums[slow - 1]) {
      nums[slow++]= nums[fast];
    }
  }
  return slow;
}

Animation de démonstration :

Extension

Supprime les éléments duplicés d'un tableau trié, en conservant un certain nombre de positions.

public static int removeDuplicatesN(int[] nums, int repeatN)
{
 if (nums.length <= repeatN)
  return nums.length;
 int index = repeatN;
 for (int i = repeatN; i < nums.length; i++) {
  if (nums[i] != nums[index - repeatN]) {
   nums[index++]= nums[i];
  }
 }
 return index;
}

Voici la totalité du contenu de cet article, j'espère qu'il vous sera utile dans vos études, et que vous continuerez à soutenir le tutoriel呐喊.

Déclaration : le contenu de cet article est issu du réseau, et les droits d'auteur appartiennent à leurs propriétaires respectifs. Le contenu est apporté par les utilisateurs d'Internet et téléversé spontanément. Le site ne détient pas de droits de propriété, n'a pas été édité par l'homme, et n'assume aucune responsabilité juridique connexe. Si vous trouvez du contenu suspect de violation de copyright, veuillez envoyer un email à : notice#oldtoolbag.com (veuillez remplacer # par @ lors de l'envoi d'un email pour signaler une violation, et fournir des preuves pertinentes. Une fois confirmée, le site supprimera immédiatement le contenu présumé illicite.

Vous pourriez aussi aimer