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 相关文章推荐
如何利用Fabric自动化你的任务
Oct 20 Python
深入理解Python 关于supper 的 用法和原理
Feb 28 Python
python操作xlsx文件的包openpyxl实例
May 03 Python
Python3爬取英雄联盟英雄皮肤大图实例代码
Nov 14 Python
Python判断变量名是否合法的方法示例
Jan 28 Python
python sorted函数的小练习及解答
Sep 18 Python
python框架django项目部署相关知识详解
Nov 04 Python
Java文件与类动手动脑实例详解
Nov 10 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
深入了解NumPy 高级索引
Jul 24 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 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
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
thinkphp整合微信支付代码分享
2016/11/24 PHP
php实现数据库的增删改查
2017/02/26 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
javascript SpiderMonkey中的函数序列化如何进行
2012/12/05 Javascript
node.js中的fs.link方法使用说明
2014/12/15 Javascript
Javascript中的方法和匿名方法实例详解
2015/06/13 Javascript
jquery捕捉回车键及获取checkbox值与异步请求的方法
2015/12/24 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
微信小程序保持session会话的方法
2020/03/20 Javascript
微信小程序picker组件两列关联使用方式
2020/10/27 Javascript
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
python解析xml文件实例分享
2013/12/04 Python
python自动化测试实例解析
2014/09/28 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
python2 与 pyhton3的输入语句写法小结
2018/09/10 Python
对python中的高效迭代器函数详解
2018/10/18 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
网络公司美工设计工作个人的自我评价
2013/11/03 职场文书
财政局长自荐信范文
2013/12/22 职场文书
大学生村官典型材料
2014/01/12 职场文书
个人简历自我评价
2014/02/02 职场文书
专业技术职务聘任书
2014/03/29 职场文书
学雷锋活动倡议书
2014/08/30 职场文书
Python可视化学习之seaborn调色盘
2022/02/24 Python
MySQL Server层四个日志的实现
2022/03/31 MySQL