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回调函数用法实例详解
Jul 02 Python
更改Ubuntu默认python版本的两种方法python-&gt; Anaconda
Dec 18 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
浅谈Python对内存的使用(深浅拷贝)
Jan 17 Python
python3+PyQt5实现拖放功能
Apr 24 Python
python tkinter窗口最大化的实现
Jul 15 Python
Pytorch 多块GPU的使用详解
Dec 31 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
python的launcher用法知识点总结
Aug 07 Python
Python如何利用Har文件进行遍历指定字典替换提交的数据详解
Nov 05 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 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/12/05 PHP
利用discuz自带通行证整合dedecms的方法以及文件下载
2007/03/06 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
PHP简单实现二维数组的矩阵转置操作示例
2017/11/24 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
JS分页效果示例
2013/10/11 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
2014/10/14 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
简述JavaScript的正则表达式中test()方法的使用
2015/06/16 Javascript
jQuery寻找n以内完全数的方法
2015/06/24 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
angularjs 表单密码验证自定义指令实现代码
2016/10/27 Javascript
Jquery实现跨域异步上传文件总结
2017/02/03 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
用vite搭建vue3应用的实现方法
2021/02/22 Vue.js
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
python实现excel读写数据
2021/03/02 Python
Python中的相关分析correlation analysis的实现
2019/08/29 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
css3 伪元素和伪类选择器详解
2014/09/04 HTML / CSS
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
办公室员工岗位工作职责
2014/03/10 职场文书
机关党员公开承诺书
2014/08/30 职场文书
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
2021/06/26 MySQL
Nginx配置文件详解以及优化建议指南
2021/09/15 Servers
在Python 中将类对象序列化为JSON
2022/04/06 Python