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读取注册表中值的方法
Apr 08 Python
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 Python
Python执行时间的计算方法小结
Mar 17 Python
Python实现的桶排序算法示例
Nov 29 Python
有趣的python小程序分享
Dec 05 Python
Python开发最牛逼的IDE——pycharm
Aug 01 Python
python配置grpc环境
Jan 01 Python
Pytorch DataLoader 变长数据处理方式
Jan 08 Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 Python
pycharm激活码2020最新分享适用pycharm2020最新版亲测可用
Nov 22 Python
详解Python 中的 defaultdict 数据类型
Feb 22 Python
python实现简单区块链结构
Apr 25 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
留言板翻页的实现详解
2006/10/09 PHP
PHP新手上路(九)
2006/10/09 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
详解PHP编码转换函数应用技巧
2016/10/22 PHP
建立良好体验度的Web注册系统ajax
2007/07/09 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
extjs两个tbar问题探讨
2013/08/08 Javascript
jQuery简单实现banner图片切换
2014/01/02 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
JavaScript实现获取dom中class的方法
2015/02/09 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
vue数据传递--我有特殊的实现技巧
2018/03/20 Javascript
JavaScript设计模式之工厂模式和抽象工厂模式定义与用法分析
2018/07/26 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
vue实现select下拉显示隐藏功能
2019/09/30 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
Python入门之modf()方法的使用
2015/05/15 Python
Python3 filecmp模块测试比较文件原理解析
2020/03/23 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
2020/07/09 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
最新销售员个人自荐信
2013/09/21 职场文书
计算机应用专业推荐信
2013/11/13 职场文书
结婚喜宴主持词
2014/03/14 职场文书
文明班级建设方案
2014/05/15 职场文书
2014年“世界无车日”活动方案
2014/09/21 职场文书
保管员岗位职责
2015/02/14 职场文书
Pyhton模块和包相关知识总结
2021/05/12 Python
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python