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的净值数据接口调用示例分享
Mar 15 Python
Python中列表元素转为数字的方法分析
Jun 14 Python
python实现发送邮件功能
Jul 22 Python
PyTorch上搭建简单神经网络实现回归和分类的示例
Apr 28 Python
Python3实现的旋转矩阵图像算法示例
Apr 03 Python
Django使用redis缓存服务器的实现代码示例
Apr 28 Python
python twilio模块实现发送手机短信功能
Aug 02 Python
python随机生成库faker库api实例详解
Nov 28 Python
Python日志logging模块功能与用法详解
Apr 09 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
Apr 16 Python
PyTorch预训练Bert模型的示例
Nov 17 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 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中Session的概念
2006/10/09 PHP
笑谈配置,使用Smarty技术
2007/01/04 PHP
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
PHP获取当前完整URL地址的函数
2014/12/21 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
jQuery 表格工具集
2010/04/25 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
JavaScript用Number方法实现string转int
2014/05/13 Javascript
jQuery实现二级下拉菜单效果
2016/01/05 Javascript
js将table的每个td的内容自动赋值给其title属性的方法
2016/10/13 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
vue项目中使用fetch的实现方法
2019/04/25 Javascript
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
JS图片预加载三种实现方法解析
2020/05/08 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
python绘图库Matplotlib的安装
2014/07/03 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
2015/04/28 Python
简单谈谈Python中的元祖(Tuple)和字典(Dict)
2017/04/21 Python
Python将主机名转换为IP地址的方法
2019/08/14 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
python numpy中cumsum的用法详解
2019/10/17 Python
基于python实现学生信息管理系统
2019/11/22 Python
python利用后缀表达式实现计算器功能
2021/02/22 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
护士实习生自我鉴定范文
2013/12/10 职场文书
大学感恩节活动策划方案
2014/10/11 职场文书
贫困证明书格式及范文
2014/10/15 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
地球上的星星观后感
2015/06/02 职场文书
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS