给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。

不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);

// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中 该长度范围内 的所有元素。
for (int i = 0; i < len; i++) {
    print(nums[i]);
}

示例 1:

输入:nums = [1,1,2]
输出:2, nums = [1,2]
解释:函数应该返回新的长度 2 ,并且原数组 nums 的前两个元素被修改为 1, 2 。不需要考虑数组中超出新长度后面的元素。

示例 2:

输入:nums = [0,0,1,1,1,2,2,3,3,4]
输出:5, nums = [0,1,2,3,4]
解释:函数应该返回新的长度 5 , 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4 。不需要考虑数组中超出新长度后面的元素。

提示:

  • 0 <= nums.length <= 3 * 104
  • -104 <= nums[i] <= 104
  • nums 已按升序排列

快慢指针

class Solution:def removeDuplicates(self, nums: List[int]) -> int:if not nums:return 0n=len(nums)fast=slow=1while fast<n:if nums[fast]!=nums[fast-1]:nums[slow]=nums[fast]slow+=1fast+=1return slow

[leetcode]26.删除有序数组中的重复项相关推荐

  1. 8. Leetcode 26. 删除有序数组中的重复项 (数组-同向双指针-快慢指针)

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件 ...

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

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...

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

    https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/ 解决方案 class Solution {public in ...

  4. C++描述 LeetCode 26. 删除排序数组中的重复项

    C++描述 LeetCode 26. 删除排序数组中的重复项   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客 ...

  5. LeetCode算法 删除有序数组中的重复项 删除有序数组中的重复项|| C++

    目录 题目 删除有序数组中的重复项 参考答案 题目 删除有序数组中的重复项|| 参考答案 题目 删除有序数组中的重复项 给你一个有序数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次 ...

  6. 14. Leetcode 80. 删除有序数组中的重复项 II (数组-同向双指针-快慢指针)

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条 ...

  7. leetcode 80. 删除有序数组中的重复项 II

    给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的 ...

  8. leetcode 26 删除排序数组中的重复项

    https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素 ...

  9. LeetCode(#26)————删除排序数组中的重复项

    题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示 ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task15. 有效的括号
  2. 机器学习数据预处理之缺失值:插值法填充+多项式插值
  3. java连接oracle增删改查,java连接oracle数据库实现增删改查
  4. 插入排序-by-Python
  5. linux tr命令完整,linux tr命令详解
  6. layuiajax提交表单控制层代码_漏洞预警|ThinkPHP 5.0 远程代码执行
  7. mysql查询错误_一个奇怪的MySQL查询错误
  8. Java基础篇2——运算符
  9. Spring Boot笔记-利用Quartz进行定时任务,利用websocket推送到浏览器(界面为thymeleaf)
  10. linux如何判断网线插入_快速鉴定网线质量的常用方法
  11. 积累的历年博客终于发完了
  12. 信号与线性系统管致中第六版pdf_【对讲机的那点事】无线电天馈系统中载频合路器的作用...
  13. hijson,64位百度云永久免费,这是一个爱分享的世界
  14. java二进制传输_Java基于TCP方式的二进制文件传输
  15. 操作系统 第七章 文件管理
  16. 网上银行系统5:系统登陆
  17. vim 基本够用的操作命令
  18. java将前端传给后端的文字写入到word中
  19. 安全存储,ARM HUK
  20. ps Adobe 存储为 Web 所用格式

热门文章

  1. 重新复习一下JDK14的9大重磅特性
  2. Java多线程知识小抄集(一)
  3. 【城市沙龙】LiveVideoStack Meet|合肥:在“霸都”邂逅音视频技术
  4. 揭秘视频千倍压缩背后的技术原理之预测技术
  5. ​关于深度学习、NLP和计算机视觉的30个顶级Python库
  6. LiveVideoStackCon 2018推出学生优惠票
  7. 世界杯直播背后:腾讯云极速高清技术部署实录
  8. 黄开宁:搞多媒体开发要掌握好信号处理、统计和数理分析
  9. Facebook 360度音频编码与渲染
  10. 腾讯运维技术专家集结,揭秘高效智能运维 | 沙龙报名中