题目

给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。

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

示例 1:

给定 nums = [1,1,1,2,2,3],

函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。

你不需要考虑数组中超出新长度后面的元素。

思路

删除多余的重复项

实现

class Solution:
def removeDuplicates(self, nums: List[int]) -> int:
if not nums:
return False
mark = nums[0]
m = 0
i = 0
while i < len(nums):
if nums[i] == mark:
m += 1
else:
mark = nums[i]
m = 1
if m > 2:
nums.pop(i)
i -=1
i += 1

最新文章

  1. 50个jQuery插件可将你的网站带到另一个高度
  2. UI拼图导出脚本,兼容cegui的ImageSet格式
  3. LeetCode OJ-- Wildcard Matching **@
  4. Unity3D-terrain brush地形画刷无法出现在Scene中,无法刷地图2
  5. .Net操作.exe文件
  6. 黄聪:wordpress如何添加自定义文章快速编辑按钮
  7. Linxu指令--crond
  8. application-config.xml和mvc-config.xml的区别
  9. 计算机网络之动态主机配置协议DHCP
  10. 二分(HDU2289 Cup)
  11. 运维route语法
  12. day09 函数学习
  13. Linux下修改环境变量,不小心改错,找不到命令解决办法
  14. 异常 Exception 知识点总结 MD
  15. oracle 日期格式化 TO_CHAR (datetime) 修饰语和后缀
  16. 小丸工具箱FAQ
  17. 2017.11.11日后matlab统一过期需激活解决办法
  18. codeforces 979C Kuro and Walking Route
  19. ASP.NET MVC异常处理方案
  20. ORM到底是什么有何优缺点

热门文章

  1. 冷饭新炒:理解Snowflake算法的实现原理
  2. JavaScript 循环数组的时候调用方法中包含Promise的时候如何做到串行
  3. HTML实例-01-轮播图
  4. day12 异常 模块 单例
  5. Azure Command Line (一)入门
  6. 转行做程序员,培训or自学?过来人亲身经历良心分享
  7. CentOS 7.3安装指南
  8. 使用grub2引导进入Linux或Window系统
  9. 区块链入门到实战(31)之Solidity – 第一个程序
  10. vscode 安装go插件失败后,最简单的方法