给定一个排好序的数组,去除庶族中重复的元素
时间: 2024-03-02 18:53:51 浏览: 26
这个问题可以使用双指针的方法解决。定义一个快指针和一个慢指针,初始时两个指针都指向数组的第一个元素。快指针向后遍历数组,如果快指针指向的元素与慢指针指向的元素不相同,则将快指针指向的元素赋值给慢指针后面的位置,然后慢指针向后移动一位。如果快指针指向的元素与慢指针指向的元素相同,则快指针继续向后移动。最后,慢指针所在的位置就是去重后数组的末尾位置。
下面是示例代码:
```python
def remove_duplicates(nums):
if not nums:
return 0
i = 0
for j in range(1, len(nums)):
if nums[j] != nums[i]:
i += 1
nums[i] = nums[j]
return i + 1
```
时间复杂度为 O(n),空间复杂度为 O(1)。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)