Python3删除排序数组中重复项的方法分析


Posted in Python onJanuary 31, 2019

本文实例讲述了Python3删除排序数组中重复项的方法。分享给大家供大家参考,具体如下:

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

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

示例 1:

给定数组 nums = [1,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。

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

说明:

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

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

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

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);
// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
  print(nums[i]);
}

代码主体:

# -*- coding:utf-8 -*-
#! python3
class Solution(object):
  def removeDuplicates(self, nums):
    """
    :param nums:
    :return:
    """
    i = 0
    while i < len(nums) - 1:
      if nums[i] == nums[i+1]:
        nums.remove(nums[i])
      else:
        i = i + 1
    return len(nums)
if __name__ == '__main__':
  a = Solution()
  count = a.removeDuplicates([1, 2, 2, 2, 2, 3])
  print(count)

运行结果:

3

Python 相关文章推荐
Python增量循环删除MySQL表数据的方法
Sep 23 Python
Python从零开始创建区块链
Mar 06 Python
基于循环神经网络(RNN)实现影评情感分类
Mar 26 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
python使用SQLAlchemy操作MySQL
Jan 02 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
May 29 Python
Python sorted对list和dict排序
Jun 09 Python
为什么说python适合写爬虫
Jun 11 Python
如何利用python发送邮件
Sep 26 Python
Python中的pprint模块
Nov 27 Python
对python判断ip是否可达的实例详解
Jan 31 #Python
对python:threading.Thread类的使用方法详解
Jan 31 #Python
python实现一个简单的ping工具方法
Jan 31 #Python
Python获取网段内ping通IP的方法
Jan 31 #Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 #Python
python重试装饰器的简单实现方法
Jan 31 #Python
Python实现合并两个有序链表的方法示例
Jan 31 #Python
You might like
一个PHP+MSSQL分页的例子
2006/10/09 PHP
php基础知识:控制结构
2006/12/13 PHP
用PHP实现递归循环每一个目录
2010/08/08 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
js function定义函数使用心得
2010/04/15 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
js获取IP地址的方法小结
2014/07/01 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
jQuery实现获取元素索引值index的方法
2016/09/18 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
Python Spyder 调出缩进对齐线的操作
2021/02/26 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
描述内存分配方式以及它们的区别
2016/10/15 面试题
.TTL是什么?有什么用处,通常那些工具会用到它?(ping? traceroute? ifconfig? netstat?)
2016/05/09 面试题
个人自我鉴定
2013/11/07 职场文书
酒店出纳岗位职责
2013/12/29 职场文书
工商管理专业职业生涯规划
2014/01/01 职场文书
个人借款担保书
2014/04/02 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android
CSS中使用grid布局实现一套模板多种布局
2022/07/15 HTML / CSS