Leetcodeブラッシングレコード-26。ソートされた配列の重複を削除

ここに画像の説明を挿入

ここに画像の説明を挿入
アイデアの簡単な紹介:
配列の並べ替えを考慮して、2つのポインターstartとcurを設定します。
ここで、startは決定可能な最後の一意の番号を
指しcurは現在調査されている番号
を指し、最初の2つの要素を指し
ます。 2つの要素が等しくない場合、
curはstartを指し、curはcur + 1を
指します。指す要素が等しい場合は、curを配列Indexlistに記録し、
curを後方に移動して、変更せずに開始します。

最後に、indexlistを反転した後、反転後の最初の要素から対応する繰り返し数をポップして削除し、
最後に長さを出力します。


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件 高く評価 14件 訪問者20,000人以上

おすすめ

転載: blog.csdn.net/weixin_41545780/article/details/105477297