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 相关文章推荐
django自定义Field实现一个字段存储以逗号分隔的字符串
Apr 27 Python
python多进程操作实例
Nov 21 Python
matplotlib给子图添加图例的方法
Aug 03 Python
python学生管理系统开发
Jan 30 Python
selenium python 实现基本自动化测试的示例代码
Feb 25 Python
PySide和PyQt加载ui文件的两种方法
Feb 27 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
Keras实现支持masking的Flatten层代码
Jun 16 Python
通过实例了解Python异常处理机制底层实现
Jul 23 Python
Python 远程开关机的方法
Nov 18 Python
python 基于opencv 绘制图像轮廓
Dec 11 Python
如何基于python实现单目三维重建详解
Jun 25 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 中魔术常量的实例详解
2017/10/26 PHP
JavaScript开发时的五个注意事项
2007/12/08 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
一款jquery特效编写的大度宽屏焦点图切换特效的实例代码
2013/08/05 Javascript
JS控制表格实现一条光线流动分割行的方法
2015/03/09 Javascript
Node.js编写组件的三种实现方式
2016/02/25 Javascript
在页面中输出当前客户端时间javascript实例代码
2016/03/02 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
jQuery实现响应鼠标事件的图片透明效果【附demo源码下载】
2016/06/16 Javascript
BOM系列第三篇之定时器应用(时钟、倒计时、秒表和闹钟)
2016/08/17 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
javascript实现下雨效果
2017/03/27 Javascript
vue-axios使用详解
2017/05/10 Javascript
对vue中v-if的常见使用方法详解
2018/09/28 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
python和shell变量互相传递的几种方法
2013/11/20 Python
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
python3抓取中文网页的方法
2015/07/28 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
python实现小世界网络生成
2019/11/21 Python
Python 求数组局部最大值的实例
2019/11/26 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
PHP如何与mysql建立链接
2013/05/05 面试题
护理专业个人求职简历的自我评价
2013/10/13 职场文书
质检部经理岗位职责
2014/02/19 职场文书
周年庆促销方案
2014/03/15 职场文书
论文评语大全
2014/04/29 职场文书
python​格式化字符串
2022/04/20 Python
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS