0
点赞
收藏
分享

微信扫一扫

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

以沫的窝 2022-03-23 阅读 173
算法

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
举报

相关推荐

0 条评论