每日一题——LeetCode(删除有序数组中的重复项)

26. 删除有序数组中的重复项26. 删除有序数组中的重复项

给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。

### 解题思路
首先要知道len()是数组的个数,而nums[1]表示从第一位起(第一位初始为0)
思路来源:https://www.bilibili.com/video/BV1d3411y75s/
首先想到主要情况,因为是自增数列
1.想到用两个小箭头定数字位数的方式
    当j和j-1数值一样(第0位和第一位一样),j就要下移一位(把不一样的的值赋给第二位)。但是j要小于元组长度。
    两种特殊情况:1.当数组为空的情况下
                 2.当数组的长度为一的情况下
   
### 代码

```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

 


版权声明:本文为wushibo123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。