给你一个有序数组 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 。不需要考虑数组中超出新长度后面的元素。
class Solution:"""解题思路: 快慢指针,指针i控制控制不重复字符的长度,如果有不重复就向后移一位指针j每次计算后都向后移一位,直到移动到最后一个元素,遍历结束。"""def removeDuplicates(self, nums: List[int]) -> int:length = len(nums)i = 0j = 1# j 控制遍历的位置, i控制不重复字符的长度while length > j:if nums[i] != nums[j]:nums[i+1],nums[j] = nums[j], nums[i+1]i += 1j = j+1else:j += 1     # i为索引,最后返回的长度为i+1return i+1

python删除排序数组中的重复项相关推荐

  1. [LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项

    这道题我真的纠结好久,因为没注意那个原地的题目要求,所以很奇怪怎么我电脑运行成功,但是LeetCode上运行就是不对.气哭. 感谢群友lino的帮助.他试了set方法不行,直接喂给我的答案了... 题 ...

  2. LeetCode--80. 删除排序数组中的重复项Ⅱ(双指针,暴力)

    删除排序数组中的重复项Ⅱ(C,Python) 1. 题目描述 2. 题目分析 3. C语言实现 4. Python实现 1. 题目描述 难度:中等 2. 题目分析 这道题是LeetCode–26. 删 ...

  3. LeetCode--26. 删除排序数组中的重复项(双指针,暴力)

    删除排序数组中的重复项(C, Python) 1. 题目描述 2. 题目分析 3. C语言实现 3.1 暴力求解法 3.2 双指针法 4. Python语言实现 1. 题目描述 难度:简单 2. 题目 ...

  4. 【每日一算法】删除排序数组中的重复项

    微信改版,加星标不迷路! 每日一算法-删除排序数组中的重复项 作者:阿广 阅读目录 ? 题目 ? 解析 ? 完整代码 1 题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次 ...

  5. LeetCode题组:第26题-删除排序数组中的重复项

    1.题目:删除排序数组中的重复项 给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度.(注意这里提到了排序数组,也就是说数组是有序的.如果无序,我们又 ...

  6. LeetCode 25K 个一组翻转链表26删除排序数组中的重复项

    如果问题或者其他方法还请分享,如加入打卡微信搜索bigsai回复进群一起打卡. K个一组翻转链表 题目要求 给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表. k 是一个正整数,它的值小 ...

  7. leetcode初级算法1.删除排序数组中的重复项

    leecode初级算法1.删除排序数组中的重复项 仅为个人刷题记录,不提供解题思路 题解与收获 class Solution {public int removeDuplicates(int[] nu ...

  8. vue删除数组中的一条数据_删除排序数组中的重复项 II

    删除排序数组中的重复项 II题目 给定一个增序排列数组 nums ,你需要在 原地 删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在 原地 修改 ...

  9. 80. 删除排序数组中的重复项 II golang

    80. 删除排序数组中的重复项 II 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O ...

最新文章

  1. C++ Openssl AES GCM 128bits代码示例,可wins10的visual studio 2017 中直接运行
  2. 表转换存储引擎的方法总结
  3. (5.1.5)引擎管理——多服务器管理之中央管理服务器(CMS)
  4. [Head First设计模式]饺子馆(冬至)中的设计模式——工厂模式
  5. C#利用DataGridView实现数据的快速输入
  6. [机器学习]PMML预测模型标记语言
  7. C++的迭代器Interator
  8. 深入Asyncio(八)异步迭代器
  9. skip-gram模型介绍及代码
  10. CentOS 常用命令及快捷键整理[转载]
  11. 深入浅出理解视频编码H264结构(内涵福利)
  12. 【Xilinx】Zynq\MPSoc\Versal不同速度等级下的ARM主频
  13. 贤鱼的刷题日常【c++动态规划】4978:宠物小精灵之收服
  14. Axis1.4 远程命令执行(CVE-2019-0227)复现
  15. 数据库学习笔记—MySQL技术nei幕—第一章—MySQL体系结构和存储引擎
  16. ARM Cortex-A系列编程指南之ARMv8 A -- 第二章 ARMv8 A架构和处理器
  17. 微信小程序使用code 获取openId
  18. 电子基础篇5---三极管
  19. statsmodels.tsa.stattools.adfuller 的用法
  20. linux打通任督二脉百度网盘,廖阅鹏催眠CD-催眠打通任督二脉

热门文章

  1. metapath2vec: Scalable Representation Learning for Heterogeneous Networks
  2. java.lang.UnsatisfiedLinkError解决方法汇集
  3. Matlab并行运算
  4. python字典内存分析_Python减少字典对象占用的七成内存
  5. 更新pip到指定版本
  6. MatLab基础设置
  7. SpringBoot Whitelabel Error Page的根本原因,三种解决方案以及其特点
  8. 京东网络接入体系解密之高性能四层网关DLVS
  9. Spring Security 4 Method security using @PreAuthorize,@PostAuthorize, @Secured, EL--转
  10. http 协议上传文件multipart form-data boundary 说明--转载