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自动扫雷实现方法
Jul 25 Python
python3实现随机数
Jun 25 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
Python 取numpy数组的某几行某几列方法
Oct 24 Python
python中的Elasticsearch操作汇总
Oct 30 Python
Python函数式编程指南:对生成器全面讲解
Nov 19 Python
python3读取csv文件任意行列代码实例
Jan 13 Python
python3中使用__slots__限定实例属性操作分析
Feb 14 Python
python实现超级马里奥
Mar 18 Python
pycharm sciview的图片另存为操作
Jun 01 Python
Python Opencv轮廓常用操作代码实例解析
Sep 01 Python
Python getsizeof()和getsize()区分详解
Nov 20 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
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
js切换光标示例代码
2013/10/10 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
js生成随机数的方法实例
2015/10/16 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
ajax与jsonp的区别及用法
2018/10/16 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
解决Vue中使用keepAlive不缓存问题
2020/08/04 Javascript
解决vue动态下拉菜单 有数据未反应的问题
2020/08/06 Javascript
vue 导航守卫和axios拦截器有哪些区别
2020/12/19 Vue.js
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
bpython 功能强大的Python shell
2016/02/16 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
python中list列表的高级函数
2016/05/17 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
python下解压缩zip文件并删除文件的实例
2018/04/24 Python
Django 自定义404 500等错误页面的实现
2020/03/08 Python
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
某科技软件测试面试题
2013/05/19 面试题
经典团队口号大全
2014/06/21 职场文书
群众路线剖析材料(四风问题)
2014/10/08 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
2014年手术室工作总结
2014/11/26 职场文书
技能培训通讯稿
2015/07/18 职场文书
小学运动会加油稿
2015/07/22 职场文书
董事长秘书工作总结
2015/08/14 职场文书
2016年感恩父亲节活动总结
2016/04/01 职场文书
JS 基本概念详细介绍
2021/10/16 Javascript