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爬虫之抓取百度贴吧代码分享
Nov 06 Python
基于python 二维数组及画图的实例详解
Apr 03 Python
解决seaborn在pycharm中绘图不出图的问题
May 24 Python
用Python解数独的方法示例
Oct 24 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
python Gabor滤波器讲解
Oct 26 Python
pycharm2020.1.2永久破解激活教程,实测有效
Oct 29 Python
python实现文件分片上传的接口自动化
Nov 19 Python
总结Python使用过程中的bug
Jun 18 Python
仅用几行Python代码就能复制她的U盘文件?
Jun 26 Python
Python集合的基础操作
Nov 01 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中date与gmdate的区别及默认时区设置
2014/05/12 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
php5.4以下版本json不支持不转义内容中文的解决方法
2015/01/13 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
2017/01/12 PHP
php图形jpgraph操作实例分析
2017/02/22 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
浅谈jquery的map()和each()方法
2016/06/12 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
JavaScript触发onScroll事件的函数节流详解
2016/12/14 Javascript
详解Vue2.0之去掉组件click事件的native修饰
2017/04/20 Javascript
详解React中的组件通信问题
2017/07/31 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
Javascript Web Worker使用过程解析
2020/03/16 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
Python实现的随机森林算法与简单总结
2018/01/30 Python
python基础学习之如何对元组各个元素进行命名详解
2018/07/12 Python
通过shell+python实现企业微信预警
2019/03/07 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
Python 调用C++封装的进一步探索交流
2021/03/04 Python
iPhoneX安全区域(Safe Area)底部小黑条在微信小程序和H5的屏幕适配
2020/04/08 HTML / CSS
德国网上药房:Apotal
2017/04/04 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
Derek Rose官网:英国高档睡衣、家居服和内衣品牌
2020/01/18 全球购物
建筑设计学生的自我评价
2014/01/16 职场文书
社区庆中秋节活动方案
2014/02/07 职场文书
竞选班长演讲稿400字
2014/08/22 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
Javascript中的解构赋值语法详解
2021/04/02 Javascript
PHP中多字节字符串操作实例详解
2021/08/23 PHP