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中处理unchecked未捕获异常实例
Jan 17 Python
Python将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
使用PyInstaller将Python程序文件转换为可执行程序文件
Jul 08 Python
Python中 传递值 和 传递引用 的区别解析
Feb 22 Python
Python 循环语句之 while,for语句详解
Apr 23 Python
django框架自定义用户表操作示例
Aug 07 Python
详解python调用cmd命令三种方法
Jul 08 Python
django框架使用方法详解
Jul 18 Python
tensorflow模型继续训练 fineturn实例
Jan 21 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
Python基础知识学习之类的继承
May 31 Python
python实现剪贴板的操作
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 substr,mb_substr以及mb_strcut的区别和用法
2013/06/21 PHP
PHP函数之日期时间函数date()使用详解
2013/09/09 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
Yii2配置Nginx伪静态的方法
2017/05/05 PHP
PHP设计模式之装饰器模式定义与用法详解
2018/04/02 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
使用ReactJS实现tab页切换、菜单栏切换、手风琴切换和进度条效果
2016/10/17 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
node跨域请求方法小结
2017/08/25 Javascript
js与jQuery实现的用户注册协议倒计时功能实例【三种方法】
2017/11/09 jQuery
利用JavaScript缓存远程窃取Wi-Fi密码的思路详解
2018/11/05 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
详解vue中v-on事件监听指令的基本用法
2020/07/22 Javascript
JS数组转字符串实现方法解析
2020/09/04 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
Python 读取指定文件夹下的所有图像方法
2018/04/27 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
python tkinter组件使用详解
2019/09/16 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
初中生学习的自我评价
2013/11/14 职场文书
工程业务员工作职责
2013/12/07 职场文书
数学教育专业求职信
2014/07/22 职场文书
群众路线领导对照材料
2014/08/23 职场文书
员工工作自我评价
2014/09/26 职场文书
美丽人生观后感
2015/06/03 职场文书
创业项目大全(适合在家创业的项目)
2019/08/15 职场文书
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript
Golang 并发编程 SingleFlight模式
2022/04/26 Golang