前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode26(删除有序数组中的重复项)

LeetCode26(删除有序数组中的重复项)

作者头像
武师叔
发布2022-09-26 17:25:24
3070
发布2022-09-26 17:25:24
举报

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

https://www.bilibili.com/video/BV12u411v7Pm

题意

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

解题思路

首先要知道len()是数组的个数,而nums[1]表示从第一位起(第一位初始为0) 思路来源:https://www.bilibili.com/video/BV1d3411y75s/

  1. 首先想到主要情况,因为是自增数列
  2. 想到用两个小箭头定数字位数的方式
  3. 当j和j-1数值一样(第0位和第一位一样),j就要下移一位(把不一样的的值赋给第二位)。但是j要小于元组长度。

两种特殊情况:

  • 当数组为空的情况下
  • 当数组的长度为一的情况下

代码实现

代码语言:javascript
复制
   ### 代码

```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
img
img
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-05-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 每日一题——LeetCode26(删除有序数组中的重复项)
    • 题意
      • 解题思路
        • 代码实现
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档