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实现备份文件实例
Sep 16 Python
Python单元测试框架unittest使用方法讲解
Apr 13 Python
pyqt5简介及安装方法介绍
Jan 31 Python
基于Python实现定时自动给微信好友发送天气预报
Oct 25 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
Python函数的返回值、匿名函数lambda、filter函数、map函数、reduce函数用法实例分析
Dec 26 Python
python使用pyecharts库画地图数据可视化的实现
Mar 25 Python
python实现文法左递归的消除方法
May 22 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
如何解决安装python3.6.1失败
Jul 01 Python
Python自动化之UnitTest框架实战记录
Sep 08 Python
pytorch交叉熵损失函数的weight参数的使用
May 24 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之第一天
2006/10/09 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
js动态创建标签示例代码
2014/06/09 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
详细分析JavaScript变量类型
2015/07/08 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
浅谈$('div a') 与$('div&gt;a')的区别
2016/07/18 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
JavaScript原生数组Array常用方法
2017/04/06 Javascript
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
Vue中全局变量的定义和使用
2019/06/05 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
Python入门学习之字符串与比较运算符
2015/10/12 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
2018/04/18 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
深入了解Python装饰器的高级用法
2020/08/13 Python
戴尔美国官方折扣店:Dell Outlet
2018/02/13 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
Vertbaudet西班牙网上商店:婴儿服装、童装、母婴用品和儿童家具
2019/10/16 全球购物
十佳大学生村官事迹
2014/01/09 职场文书
四好少年事迹材料
2014/01/12 职场文书
幼教求职信
2014/03/12 职场文书
经销商年会策划方案
2014/05/29 职场文书
会计求职自荐信
2014/06/20 职场文书
活动总结范文
2014/08/30 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书
毕业典礼邀请函
2015/01/31 职场文书
小学生运动会广播
2015/08/19 职场文书
如何在CSS中绘制曲线图形及展示动画
2021/05/24 HTML / CSS
阿里云日志过滤器配置日志服务
2022/04/09 Servers