Python3删除排序数组中重复项的方法分析


Posted in Python onJanuary 31, 2019

本文实例讲述了Python3删除排序数组中重复项的方法。分享给大家供大家参考,具体如下:

给定一个排序数组,你需要在[原地]删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。

不要使用额外的数组空间,你必须在[原地]修改输入数组并在使用 O(1) 额外空间的条件下完成。

示例 1:

给定数组 nums = [1,1,2],

函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。

你不需要考虑数组中超出新长度后面的元素。

示例 2:

给定 nums = [0,0,1,1,1,2,2,3,3,4],

函数应该返回新的长度 5, 并且原数组 nums 的前五个元素被修改为 0, 1, 2, 3, 4。

你不需要考虑数组中超出新长度后面的元素。

说明:

为什么返回数值是整数,但输出的答案是数组呢?

请注意,输入数组是以“引用”方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。

你可以想象内部操作如下:

// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝
int len = removeDuplicates(nums);
// 在函数里修改输入数组对于调用者是可见的。
// 根据你的函数返回的长度, 它会打印出数组中该长度范围内的所有元素。
for (int i = 0; i < len; i++) {
  print(nums[i]);
}

代码主体:

# -*- coding:utf-8 -*-
#! python3
class Solution(object):
  def removeDuplicates(self, nums):
    """
    :param nums:
    :return:
    """
    i = 0
    while i < len(nums) - 1:
      if nums[i] == nums[i+1]:
        nums.remove(nums[i])
      else:
        i = i + 1
    return len(nums)
if __name__ == '__main__':
  a = Solution()
  count = a.removeDuplicates([1, 2, 2, 2, 2, 3])
  print(count)

运行结果:

3

Python 相关文章推荐
python中的yield使用方法
Feb 11 Python
Python中有趣在__call__函数
Jun 21 Python
python爬取淘宝商品详情页数据
Feb 23 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
Mar 13 Python
python通过ffmgep从视频中抽帧的方法
Dec 05 Python
Python WEB应用部署的实现方法
Jan 02 Python
基于python实现学生信息管理系统
Nov 22 Python
pytorch 常用线性函数详解
Jan 15 Python
Python MySQL 日期时间格式化作为参数的操作
Mar 02 Python
简单了解python shutil模块原理及使用方法
Apr 28 Python
python里glob模块知识点总结
Jan 05 Python
Python合并pdf文件的工具
Jul 01 Python
对python判断ip是否可达的实例详解
Jan 31 #Python
对python:threading.Thread类的使用方法详解
Jan 31 #Python
python实现一个简单的ping工具方法
Jan 31 #Python
Python获取网段内ping通IP的方法
Jan 31 #Python
Python实现删除排序数组中重复项的两种方法示例
Jan 31 #Python
python重试装饰器的简单实现方法
Jan 31 #Python
Python实现合并两个有序链表的方法示例
Jan 31 #Python
You might like
检查php文件中是否含有bom的函数
2012/05/31 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP实现简易图形计算器
2020/08/28 PHP
JS命名空间的另一种实现
2013/08/09 Javascript
JS动态修改图片的URL(src)的方法
2015/04/01 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
详解使用Typescript开发node.js项目(简单的环境配置)
2017/10/09 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
vue实现节点增删改功能
2019/09/26 Javascript
python 不关闭控制台的实现方法
2011/10/23 Python
python基于queue和threading实现多线程下载实例
2014/10/08 Python
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
python实现m3u8格式转换为mp4视频格式
2018/02/28 Python
python定向爬虫校园论坛帖子信息
2018/07/23 Python
python中reader的next用法
2018/07/24 Python
python机器学习之KNN分类算法
2018/08/29 Python
Python基础知识点 初识Python.md
2019/05/14 Python
flask应用部署到服务器的方法
2019/07/12 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
python简单的三元一次方程求解实例
2020/04/02 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
中间件分为哪几类
2016/09/18 面试题
如何将无状态会话Bean发布为WEB服务,只有无状态会话Bean可以发布为WEB服务?
2015/12/03 面试题
怎么写自荐书范文
2014/02/12 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
工作推荐信范文
2014/05/10 职场文书
化学专业大学生职业生涯规划范文
2014/09/13 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
2014年大学生党员自我评议
2014/09/22 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
2015年机关党委工作总结
2015/05/23 职场文书