Description de la question
Étant donné un tableau trié, supprimez les éléments en double du tableau, conservez un seul élément en double et renvoyez la nouvelle longueur du tableau.
Exiger:
N'allouez pas d'espace supplémentaire au tableau, vous devez utiliser la taille de la mémoire de la constante pour fonctionner en place.
Par exemple:
Compte tenu du tableau a = [1,1,2], votre appel de fonction doit retourner la longueur = 2, et A devient maintenant [1,2].
entrer
Un tableau trié, par exemple [1,1,2].
Sortir
Renvoie la nouvelle longueur du tableau, par exemple la longueur = 2.
Méthode du pointeur rapide et lent
Réglez le pointeur rapide pour traverser le tableau et le pointeur lent vers le bit suivant de l'élément non répété.
public static int supprimeuplicate (int [] nums) {if (nums.length <1) return nums.length; int lent = 1; for (int Fast = 1; Fast <nums.length; Fast ++) {if (nums [Fast]! = nums [Slow - 1]) {nums [Slow ++] = nums [Fast]; }} retourne lent;}Démonstration d'animation:
Étendu
Supprime les éléments en double du tableau trié, laissant le nombre spécifié de chiffres.
public static int supprimeuplicateSn (int [] nums, int répétern) {if (nums.length <= repeatn) return nums.length; int index = répétern; for (int i = répétern; i <nums.length; i ++) {if (nums [i]! = nums [index - répétern]) {nums [index ++] = nums [i]; }} retour index;}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.