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的另外几种语言实现
Jan 29 Python
Mac 上切换Python多版本
Jun 17 Python
Python实现的选择排序算法示例
Nov 29 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
django-rest-swagger的优化使用方法
Aug 29 Python
Django中自定义模型管理器(Manager)及方法
Sep 23 Python
python:动态路由的Flask程序代码
Nov 22 Python
Python 面向对象之类class和对象基本用法示例
Feb 02 Python
Python如何向SQLServer存储二进制图片
Jun 08 Python
django rest framework 过滤时间操作
Jul 12 Python
python中温度单位转换的实例方法
Dec 27 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获取文件名后缀
2013/06/09 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
php转换上传word文件为PDF的方法【基于COM组件】
2019/06/10 PHP
JQUERY 对象与DOM对象之两者相互间的转换
2009/04/27 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
chrome不支持form.submit的解决方案
2015/04/28 Javascript
初步使用bootstrap快速创建页面
2016/03/03 Javascript
jQuery ajax中使用confirm,确认是否删除的简单实例
2016/06/17 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
2016/12/02 Javascript
jQuery validate插件功能与用法详解
2016/12/15 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
vuex vue简单使用知识点总结
2019/08/29 Javascript
node.js中 redis 的安装和基本操作示例
2020/02/10 Javascript
解决vue项目中出现Invalid Host header的问题
2020/11/17 Javascript
[02:28]DOTA2英雄基础教程 灰烬之灵
2013/12/19 DOTA
Eclipse + Python 的安装与配置流程
2013/03/05 Python
python实现2048小游戏
2015/03/30 Python
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
python 定义给定初值或长度的list方法
2018/06/23 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
html5教你做炫酷的碎片式图片切换 (canvas)
2017/07/28 HTML / CSS
Omio中国:全欧洲低价大巴、火车和航班搜索和比价
2018/08/09 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
《祁黄羊》教学反思
2014/04/22 职场文书
敬老院院长事迹材料
2014/05/21 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
三孔导游词
2015/02/05 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
奖励申请报告范文
2015/05/15 职场文书
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
在ubuntu下安装go开发环境的全过程
2022/08/05 Golang