Leetcode brushing record-26. Eliminar duplicados en una matriz ordenada

Inserte la descripción de la imagen aquí

Inserte la descripción de la imagen aquí
Breve introducción de la idea:
Teniendo en cuenta la clasificación de la matriz, establecemos dos punteros start y cur,
donde start apunta al último número único que se puede determinar,
cur apunta al número investigado actualmente y
apuntan a los dos primeros elementos al principio
. Los dos elementos no son iguales,
señalamos comenzar a cur y cur apunta a cur + 1.
Si los elementos apuntados son iguales, registramos cur en una lista de índice de matriz,
y luego movemos cur hacia atrás y comenzamos sin cambios.

Finalmente, después de invertir la lista de índice, sacamos y eliminamos los números repetidos correspondientes del primer elemento después de la inversión, y
finalmente sacamos la longitud.


class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        length = len(nums)
        start = 0
        cur = 1
        suma = 1
        indexlist = []
        while cur < length:
            if nums[start] != nums[cur]:
                start = cur
                cur += 1
                suma += 1
            elif nums[start] == nums[cur]:
                indexlist.append(cur)
                cur += 1
        indexlist = indexlist[::-1]
        for pos in indexlist:
            nums.pop(pos)
        return suma
59 artículos originales publicados · Me gustaron 14 · Visitantes más de 20,000

Supongo que te gusta

Origin blog.csdn.net/weixin_41545780/article/details/105477297
Recomendado
Clasificación