Python3实现从排序数组中删除重复项算法分析


Posted in Python onApril 03, 2019

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

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

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

方案一:利用set()快速剔除重复元素。 效率最高

# -*- coding:utf-8 -*-
#! python3
def removeDuclicates(nums):
  nums[:] = sorted(set(nums))
  return len(nums)
#测试
arr1 = [1,1,2,3,4,5,5,6]
print(removeDuclicates(arr1))

运行结果:

6

方案二:双指针法。 效率次之

# -*- coding:utf-8 -*-
#! python3
def removeDuplicates(nums):
  if not nums:
    return 0
  j = 0
  for i in range(1, len(nums)):
    if nums[j] != nums[i]:
      j += 1
      nums[j] = nums[i]
  return j + 1
#测试
arr1 = [1,1,2,3,4,5,5,6]
print(removeDuplicates(arr1))

运行结果:

6

方案三:利用remove()方法。 效率次之

# -*- coding:utf-8 -*-
#! python3
def removeDuplicates(nums):
  i = 0
  while i < len(nums) - 1:
    if nums[i] == nums[i + 1]:
      nums.remove(nums[i])
    else:
      i += 1
  return len(nums)
#测试
arr1 = [1,1,2,3,4,5,5,6]
print(removeDuplicates(arr1))

运行结果:

6

Python 相关文章推荐
使用Python的Twisted框架编写简单的网络客户端
Apr 16 Python
Python优化技巧之利用ctypes提高执行速度
Sep 11 Python
详解 Python 读写XML文件的实例
Aug 02 Python
python实现数据导出到excel的示例--普通格式
May 03 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 Python
Python不同目录间进行模块调用的实现方法
Jan 29 Python
python数据预处理之数据标准化的几种处理方式
Jul 17 Python
python json 递归打印所有json子节点信息的例子
Feb 27 Python
Pyspark获取并处理RDD数据代码实例
Mar 27 Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 Python
Python与C/C++的相互调用案例
Mar 04 Python
Python超简单容易上手的画图工具库推荐
May 10 Python
Python3安装Pillow与PIL的方法
Apr 03 #Python
python使用requests模块实现爬取电影天堂最新电影信息
Apr 03 #Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 #Python
Python3实现计算两个数组的交集算法示例
Apr 03 #Python
Python3获取拉勾网招聘信息的方法实例
Apr 03 #Python
Python3实现的旋转矩阵图像算法示例
Apr 03 #Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 #Python
You might like
PHP中函数内引用全局变量的方法
2008/10/20 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
修改php.ini不生效问题解决方法(上传大于8M的文件)
2013/06/14 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
浅谈PHP中静态方法和非静态方法的相互调用
2016/10/04 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
用prototype实现的简单小巧的多级联动菜单
2007/03/24 Javascript
捕获关闭窗口的脚本
2009/01/10 Javascript
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
ToolTips JQEURY插件之简洁小提示框效果
2011/11/19 Javascript
导入extjs、jquery 文件时$使用冲突问题解决方法
2014/01/14 Javascript
Javascript中arguments对象详解
2014/10/22 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
javascript生成img标签的3种实现方法(对象、方法、html)
2015/12/25 Javascript
jQuery EasyUI菜单与按钮详解
2016/07/13 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
python使用循环实现批量创建文件夹示例
2014/03/25 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
用pycharm开发django项目示例代码
2018/10/24 Python
python使用ddt过程中遇到的问题及解决方案【推荐】
2018/10/29 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
python 实现将多条曲线画在一幅图上的方法
2019/07/07 Python
jupyter notebook 参数传递给shell命令行实例
2020/04/10 Python
使用python实现下载我们想听的歌曲,速度超快
2020/07/09 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
TripAdvisor印尼站:全球领先的旅游网站
2018/03/15 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
篮球比赛策划方案
2014/06/05 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
2014年安全员工作总结
2014/11/13 职场文书
抖音短视频(douyin)去水印工具的实现代码
2021/03/30 Javascript