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读取浮点数和读取文本文件示例
May 06 Python
初学Python函数的笔记整理
Apr 07 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
python实现在每个独立进程中运行一个函数的方法
Apr 23 Python
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
May 22 Python
Windows平台Python连接sqlite3数据库的方法分析
Jul 12 Python
python中将一个全部为int的list 转化为str的list方法
Apr 09 Python
Python实现检测文件MD5值的方法示例
Apr 11 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
基于django micro搭建网站实现加水印功能
May 22 Python
python右对齐的实例方法
Jul 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中常用编辑器推荐
2007/01/02 PHP
php strlen mb_strlen计算中英文混排字符串长度
2009/07/10 PHP
PHP 学习路线与时间表
2010/02/21 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
JQuery控制div外点击隐藏而div内点击不会隐藏的方法
2015/01/13 Javascript
JavaScript中的Number数字类型学习笔记
2016/05/26 Javascript
两种简单的跨域方法(jsonp、php)
2017/01/02 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
Bootstrap禁用响应式布局的实现方法
2017/03/09 Javascript
JavaScript实现简单精致的图片左右无缝滚动效果
2017/03/16 Javascript
Angular使用$http.jsonp发送跨站请求的方法
2017/03/16 Javascript
JavaScript实现的仿新浪微博原生态输入字数即时检查功能【兼容IE6】
2017/09/26 Javascript
JSON数据中存在单个转义字符“\”的处理方法
2018/07/11 Javascript
微信小程序实现下拉菜单切换效果
2020/03/30 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
JavaScript装箱及拆箱boxing及unBoxing用法解析
2020/06/15 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
举例详解Python中的split()函数的使用方法
2015/04/07 Python
详解Python命令行解析工具Argparse
2016/04/20 Python
Python单元测试unittest的具体使用示例
2018/12/17 Python
python openssl模块安装及用法
2020/12/06 Python
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
学校安全管理责任书
2014/07/23 职场文书
寒山寺导游词
2015/02/03 职场文书
2014年个人总结范文
2015/03/09 职场文书
幼儿园教师师德师风承诺书
2015/04/28 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
python 用递归实现通用爬虫解析器
2021/04/16 Python
JS中一些高效的魔法运算符总结
2021/05/06 Javascript