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中用于计算对数的log()方法
May 15 Python
python比较两个列表大小的方法
Jul 11 Python
python对离散变量的one-hot编码方法
Jul 11 Python
python实现列表的排序方法分享
Jul 01 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
Python 脚本的三种执行方式小结
Dec 21 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
Apr 08 Python
Pandas中DataFrame基本函数整理(小结)
Jul 20 Python
基于python实现操作redis及消息队列
Aug 27 Python
如何利用Python matplotlib绘制雷达图
Dec 21 Python
Django中session进行权限管理的使用
Jul 09 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
晶体管单管来复再生式收音机
2021/03/02 无线电
PHP 加密与解密的斗争
2009/04/17 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
2012/06/21 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
2014/10/31 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
PHP中检索字符串的方法分析【strstr与substr_count方法】
2017/02/17 PHP
PHP的mysqli_rollback()函数讲解
2019/01/23 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
JavaScript的各种常见函数定义方法
2014/09/16 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
2017/06/28 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
玖熙女鞋美国官网:Nine West
2016/10/06 全球购物
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
Furla官网:意大利著名的皮革品牌
2019/08/06 全球购物
玩具公司的创业计划书
2013/12/31 职场文书
转预备党员政审材料
2014/02/06 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
个人借条范本
2015/05/25 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
《猴王出世》教学反思
2016/02/23 职场文书