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的单元测试
Apr 28 Python
Python图像灰度变换及图像数组操作
Jan 27 Python
python中安装模块包版本冲突问题的解决
May 02 Python
对pycharm 修改程序运行所需内存详解
Dec 03 Python
python 多线程重启方法
Feb 18 Python
Python去除字符串前后空格的几种方法
Mar 04 Python
Python面向对象进阶学习
May 21 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
python中get和post有什么区别
Jun 19 Python
Python通过m3u8文件下载合并ts视频的操作
Apr 16 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 24 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
PHP+javascript制作带提示的验证码源码分享
2014/05/28 PHP
浅析Yii2 GridView实现下拉搜索教程
2016/04/22 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
2020/04/04 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
理解javascript回调函数
2014/12/28 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
jQuery时间日期三级联动(推荐)
2016/11/27 Javascript
canvas 弹幕效果(实例分享)
2017/01/11 Javascript
Javascript数组及类数组相关原理详解
2020/10/29 Javascript
Python实现一个简单的MySQL类
2015/01/07 Python
python利用matplotlib库绘制饼图的方法示例
2016/12/18 Python
python数据处理实战(必看篇)
2017/06/11 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
微信跳一跳自动运行python脚本
2018/01/08 Python
python用post访问restful服务接口的方法
2018/12/07 Python
Python绘制二维曲线的日常应用详解
2019/12/04 Python
Python之Class&amp;Object用法详解
2019/12/25 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
CSS3中:nth-child和:nth-of-type的区别深入理解
2014/03/10 HTML / CSS
英国人最爱的饰品网站:Accessorize
2016/08/22 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
颇特女士香港官网:NET-A-PORTER香港
2021/03/08 全球购物
机械专业应届生求职信
2013/12/12 职场文书
银行员工职业规划范文
2014/01/21 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
行政助理岗位职责范本
2015/04/11 职场文书
法律意见书范本
2015/06/04 职场文书
jquery插件实现图片悬浮
2021/04/16 jQuery
解析redis hash应用场景和常用命令
2021/08/04 Redis