当前位置: 首页 > article >正文

LeeCode题库第二十六题

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

项目场景:

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

考虑 nums 的唯一元素的数量为 k ,你需要做以下事情确保你的题解可以被通过:

  • 更改数组 nums ,使 nums 的前 k 个元素包含唯一元素,并按照它们最初在 nums 中出现的顺序排列。nums 的其余元素与 nums 的大小不重要。
  • 返回 k 。

判题标准:

系统会用下面的代码来测试你的题解:

int[] nums = [...]; // 输入数组
int[] expectedNums = [...]; // 长度正确的期望答案

int k = removeDuplicates(nums); // 调用

assert k == expectedNums.length;
for (int i = 0; i < k; i++) {
    assert nums[i] == expectedNums[i];
}

如果所有断言都通过,那么您的题解将被 通过

提示:

  • 1 <= nums.length <= 3 * 104
  • -104 <= nums[i] <= 104
  • nums 已按 非严格递增 排列


问题描述

        这题要求原地删除重复的元素,即相邻数字不能相同。本着简单题简单做的原则,right从0开始遍历,0为特殊情况需要特判一下,之后的right如果和前面数字相同就continue否则的话填入nums[cur],cur+=1,最后返回cur即可。 

class Solution:
    def removeDuplicates(self, nums: List[int]) -> int:
        cur=1
        for right,x in enumerate(nums):
            if right==0:
                nums[0]==x
            if right>0 and nums[right]!=nums[right-1]:
                nums[cur]=x
                cur+=1
            else:
                continue
        return cur



           
         

        以上为本篇文章的全部内容,感谢你抽出宝贵的时间阅读这篇文章。如果你有任何疑问或建议,欢迎在评论区留言,我们一起交流进步。愿你的代码之路越走越顺,生活充满阳光! 


http://www.kler.cn/a/554464.html

相关文章:

  • 云服务中的“高可用性架构”是怎样的?
  • 2025-02-20 学习记录--C/C++-PTA 7-26 单词长度
  • SQLSTATE「42000」:Syntax error or access violation: 1055……
  • spring微服务+dubbo框架,某一服务启动时提示多个bean存在
  • playwright 实现自动上传,多元素操作
  • 芝加哥学派(Chicago School):金融与经济学的创新力量(中英双语)
  • 基于Openlayers对GeoServer发布的数据进行增删改
  • 芯谷D2038:高集成度六通道电子音量控制电路的音频解决方案
  • 为什么mvcc中?m_ids 列表并不等同于 min_trx_id 和 max_trx_id 之间的所有事务 ID
  • 在项目中调用本地Deepseek(接入本地Deepseek)
  • jQuery UI CSS 框架 API
  • 【并发测试】Redis并发性能测试
  • Vue学习记录21
  • 求矩阵对角线元素的最大值
  • js解析后端传来的如图示的list集合,怎么获取每个map的key和value
  • spring中aop
  • LLC谐振变换器原理
  • 2026考研趋势深度解析:政策变化+高效工具指南
  • Spring Boot 实现 DeepSeek API 调用
  • mysql查看binlog日志