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 相关文章推荐
Linux下Python获取IP地址的代码
Nov 30 Python
Python中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
Python中的choice()方法使用详解
May 15 Python
简单实现python数独游戏
Mar 30 Python
python基础教程项目四之新闻聚合
Apr 02 Python
Python键盘输入转换为列表的实例
Jun 23 Python
Python 中字符串拼接的多种方法
Jul 30 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
Python 实现交换矩阵的行示例
Jun 26 Python
python常用数据重复项处理方法
Nov 22 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 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 SQL之where语句生成器
2009/03/24 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
详解php语言最牛掰的Laravel框架
2017/11/20 PHP
PHP asXML()函数讲解
2019/02/03 PHP
YUI的Tab切换实现代码
2010/04/11 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
jquery绑定事件不生效的解决方法
2014/02/11 Javascript
EasyUI中combobox默认值注意事项
2015/03/01 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
javascript检测flash插件是否被禁用的方法
2016/01/14 Javascript
jQuery添加和删除输入文本框标签代码
2016/05/20 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
2016/11/07 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
React-Native左右联动List的示例代码
2017/09/21 Javascript
用最少的JS代码写出贪吃蛇游戏
2018/01/12 Javascript
vue的for循环使用方法
2019/02/12 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
微信js-sdk 录音功能的示例代码
2019/11/01 Javascript
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
python模拟点击网页按钮实现方法
2020/02/25 Python
python获取栅格点和面值的实现
2020/03/10 Python
html5 桌面提醒:Notifycations应用介绍
2012/11/27 HTML / CSS
办公室主任职责范文
2013/11/08 职场文书
信息部岗位职责
2013/11/12 职场文书
大专应届生个人的自我评价
2013/11/21 职场文书
电子商务个人职业生涯规划范文
2014/02/12 职场文书
十佳党员事迹材料
2014/08/28 职场文书
以权谋私检举信范文
2015/03/02 职场文书
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
为Centos安装指定版本的Docker
2022/04/01 Servers
Windows Server 修改远程桌面端口的实现
2022/06/25 Servers