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实现监控windows服务并自动启动服务示例
Apr 17 Python
Python实现的HTTP并发测试完整示例
Apr 23 Python
python实现基本进制转换的方法
Jul 11 Python
Pandas 合并多个Dataframe(merge,concat)的方法
Jun 08 Python
Python根据已知邻接矩阵绘制无向图操作示例
Jun 23 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
Python 利用高德地图api实现经纬度与地址的批量转换
Aug 14 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
python实现3D地图可视化
Mar 25 Python
Python+PyQt5+MySQL实现天气管理系统
Jun 16 Python
如何在Python中妥善使用进度条详解
Apr 05 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通用分页类page.php[仿google分页]
2008/08/31 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
解析php中如何调用用户自定义函数
2013/08/06 PHP
php上传功能集后缀名判断和随机命名(强力推荐)
2015/09/10 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
Javascript SHA-1:Secure Hash Algorithm
2006/12/20 Javascript
JS array 数组详解
2009/03/22 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
javascript获取ckeditor编辑器的值(实现代码)
2013/11/18 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
jquery实现全选功能效果的实现代码
2016/05/05 Javascript
angular实现商品筛选功能
2017/02/01 Javascript
javascript自执行函数
2017/02/10 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
详解Vue微信公众号开发踩坑全记录
2017/08/21 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
2019/04/18 Javascript
vue中解决拖拽改变存在iframe的div大小时卡顿问题
2020/07/22 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
浅析Python中的多重继承
2015/04/28 Python
python去掉空白行的多种实现代码
2018/03/19 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
pymongo中group by的操作方法教程
2019/03/22 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
给 TensorFlow 变量进行赋值的方式
2020/02/10 Python
琳达·法罗眼镜英国官网:Linda Farrow英国
2021/01/19 全球购物
数控技术应届生求职信
2013/11/13 职场文书
大学生职业生涯规划书模版
2013/12/30 职场文书
会计求职自荐信
2014/06/20 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
上班迟到检讨书
2015/05/06 职场文书
社会实践心得体会范文
2016/01/14 职场文书
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python