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设计模式编程之工厂方法模式的使用
Mar 02 Python
Python 使用SMTP发送邮件的代码小结
Sep 21 Python
Python的mysql数据库的更新如何实现
Jul 31 Python
解决python matplotlib imshow无法显示的问题
May 24 Python
Python 利用切片从列表中取出一部分使用的方法
Feb 01 Python
解决Python 使用h5py加载文件,看不到keys()的问题
Feb 08 Python
python pytest进阶之xunit fixture详解
Jun 27 Python
python可视化实现KNN算法
Oct 16 Python
keras 读取多标签图像数据方式
Jun 12 Python
Python自带的IDE在哪里
Jul 01 Python
Python优秀开源项目Rich源码解析的流程分析
Jul 06 Python
python 制作网站筛选工具(附源码)
Jan 21 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-fpm的两种进程管理模式详解
2013/06/03 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
PHP简单实现防止SQL注入的方法
2018/03/13 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
用JavaScript脚本实现Web页面信息交互
2006/12/21 Javascript
说明你的Javascript技术很烂的五个原因
2011/04/26 Javascript
jQuery实现跨域
2015/02/03 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
使用nodejs中httpProxy代理时候出现404异常的解决方法
2016/08/15 NodeJs
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
jQuery、zepto、js常用小技巧
2017/02/12 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
jquery实现图片上传前本地预览
2017/04/28 jQuery
原生JS实现日历组件的示例代码
2017/09/22 Javascript
Node之简单的前后端交互(实例讲解)
2017/11/14 Javascript
nodejs express配置自签名https服务器的方法
2018/05/22 NodeJs
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
超详细动手搭建一个VuePress 站点及开启PWA与自动部署的方法
2019/01/27 Javascript
vue+element模态框中新增模态框和删除功能
2019/06/11 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
Python模块WSGI使用详解
2018/02/02 Python
python实现在IDLE中输入多行的方法
2018/04/19 Python
Python Grid使用和布局详解
2018/06/30 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
tensorflow2.0保存和恢复模型3种方法
2020/02/03 Python
python文件读取失败怎么处理
2020/06/23 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
阿联酋团购网站:Groupon阿联酋
2016/10/14 全球购物
儿科护理实习自我鉴定
2013/09/19 职场文书
大学学年自我鉴定
2013/10/28 职场文书
先进党员事迹材料
2014/12/24 职场文书
瘦西湖导游词
2015/02/03 职场文书
大学生个人总结范文
2015/02/15 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书