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的函数嵌套的使用方法
Jan 24 Python
Python Web框架Flask中使用百度云存储BCS实例
Feb 08 Python
使用Python的Scrapy框架编写web爬虫的简单示例
Apr 17 Python
Python数据结构与算法之图结构(Graph)实例分析
Sep 05 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
TensorFlow利用saver保存和提取参数的实例
Jul 26 Python
Python抽象和自定义类定义与用法示例
Aug 23 Python
python3 property装饰器实现原理与用法示例
May 15 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
Python的缺点和劣势分析
Nov 19 Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
Jun 23 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
Java和PHP在Web开发方面对比分析
2015/03/01 PHP
CSS中一些@规则的用法小结
2021/03/09 HTML / CSS
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
JS基于面向对象实现的放烟花效果
2015/05/07 Javascript
javascript连续赋值问题
2015/07/08 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
2015/08/11 Javascript
JS折半插入排序算法实例
2015/12/02 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
js 获取站点应用名的简单实例
2016/08/18 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
BootStrap注意事项小结(五)表单
2017/03/10 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
详解创建自定义的Angular Schematics
2018/06/06 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
JS函数内部属性之arguments和this实例解析
2018/10/07 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
Vue 解决在element中使用$notify在提示信息中换行问题
2020/11/11 Javascript
JS指定音频audio在某个时间点进行播放
2020/11/28 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
Python 支付整合开发包的实现
2019/01/23 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
火山动力Java笔试题
2014/06/26 面试题
2014年光棍节活动策划方案(创意集锦)
2014/09/29 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
初中毕业生自我评价
2015/03/02 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
运动会新闻稿
2015/07/17 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
2019年房屋委托租赁合同范本(通用版)!
2019/07/17 职场文书
JavaScript实现复选框全选功能
2021/04/11 Javascript
Pytorch 如何实现常用正则化
2021/05/27 Python
GTX1660显卡搭配显示器推荐
2022/04/19 数码科技