26. 删除有序数组中的重复项26. 删除有序数组中的重复项
给你一个 升序排列 的数组 nums
,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k
个元素,那么 nums
的前 k
个元素应该保存最终结果。
### 解题思路
首先要知道len()是数组的个数,而nums[1]表示从第一位起(第一位初始为0)
思路来源:https://www.bilibili.com/video/BV1d3411y75s/
首先想到主要情况,因为是自增数列
1.想到用两个小箭头定数字位数的方式
当j和j-1数值一样(第0位和第一位一样),就要用下面一位不同顶上来
### 代码
```python3
class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if not nums:#当数组为空的情况下
return 0
if len(nums)==1:#当数组的长度为一的情况下
return 1
i=1
j=1
while j<len(nums) :
if nums[j] == nums[j-1]:
j+=1
else:
nums[i]=nums[j]
i+=1
j+=1
return i