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代码制作configure文件示例
Jul 28 Python
Python格式化css文件的方法
Mar 10 Python
python实现比较两段文本不同之处的方法
May 30 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
python3实现弹弹球小游戏
Nov 25 Python
详解python破解zip文件密码的方法
Jan 13 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
OpenCV利用python来实现图像的直方图均衡化
Oct 21 Python
python 实现socket服务端并发的四种方式
Dec 14 Python
Python爬虫回测股票的实例讲解
Jan 22 Python
Pytorch 中的optimizer使用说明
Mar 03 Python
详解Python类和对象内容
Jun 22 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关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
php绘制一个扇形的方法
2015/01/24 PHP
php递归遍历多维数组的方法
2015/04/18 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
JavaScript中setInterval的用法总结
2013/11/20 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
用js通过url传参把数据从一个页面传到另一个页面
2014/09/01 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
jquery渐隐渐显的图片幻灯闪烁切换实现方法
2015/02/26 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
jQuery为动态生成的select元素添加事件的方法
2016/08/29 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
原生JS实现简单的倒计时功能示例
2018/08/30 Javascript
Python3实现连接SQLite数据库的方法
2014/08/23 Python
进一步了解Python中的XML 工具
2015/04/13 Python
python使用in操作符时元组和数组的区别分析
2015/05/19 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
2020/06/28 Python
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
我的画教学反思
2014/04/28 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
今日说法观后感
2015/06/08 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
2019银行竞聘书
2019/06/21 职场文书
导游词之无锡古运河
2019/11/14 职场文书
Python anaconda安装库命令详解
2021/10/16 Python
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript
Spring Boot 底层原理基础深度解析
2022/04/03 Java/Android
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL