从零开始的leetCode:数组去重

目录

  • 数组去重
    • 任务描述
    • 解决思路
    • 时间复杂度分析

数组去重

任务描述

给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成,不需要管后面的数。


给定数组 nums = [1,1,2],

输出:2 且nums = [1,2,-]


给定数组 nums = [0,0,1,1,1,2,2,3,3,4],

输出:5 且nums = [0,1,2,3,4,-]

解决思路

双指针,一个指向结果的第j个元素,一个指向原数组的第i个元素

从零开始的leetCode:数组去重_第1张图片

从零开始的leetCode:数组去重_第2张图片

从零开始的leetCode:数组去重_第3张图片

从零开始的leetCode:数组去重_第4张图片

从零开始的leetCode:数组去重_第5张图片

……一直循环直到i走到头,输出i就行

时间复杂度分析

时间复杂度 O ( n ) O(n) O(n)

你可能感兴趣的:(leetcode)