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自定义主从分布式架构实例分析
Sep 19 Python
Python 两个列表的差集、并集和交集实现代码
Sep 21 Python
python re模块的高级用法详解
Jun 06 Python
基于python中theano库的线性回归
Aug 31 Python
Python简直是万能的,这5大主要用途你一定要知道!(推荐)
Apr 03 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
parser.add_argument中的action使用
Apr 20 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
May 04 Python
Python 如何将integer转化为罗马数(3999以内)
Jun 05 Python
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
Nov 11 Python
实操Python爬取觅知网素材图片示例
Nov 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
PHPUnit PHP测试框架安装方法
2011/03/23 PHP
php中json_encode UTF-8中文乱码的更好解决方法
2014/09/28 PHP
thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
2017/03/16 PHP
JavaScript 不只是脚本
2007/05/30 Javascript
JS实现随机数生成算法示例代码
2013/08/08 Javascript
JS删除字符串中重复字符方法
2014/03/09 Javascript
纯JS实现根据CSS的class选择DOM
2014/03/22 Javascript
ExtJS4 动态生成的grid导出为excel示例
2014/05/02 Javascript
影响jQuery使用的14个方面
2014/09/01 Javascript
如何判断微信内置浏览器(通过User Agent实现)
2014/09/01 Javascript
JavaScript link方法入门实例(给字符串加上超链接)
2014/10/17 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
基于node实现websocket协议
2016/04/25 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
2016/06/06 Javascript
js,jq,css多方面实现简易下拉菜单功能
2017/05/13 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
Grunt针对静态文件的压缩,版本控制打包的实例讲解
2017/09/29 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
对vue中methods互相调用的方法详解
2018/08/30 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
2019/09/27 Javascript
Vue之封装公用变量以及实现方式
2020/07/31 Javascript
《Python之禅》中对于Python编程过程中的一些建议
2015/04/03 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
python 等差数列末项计算方式
2020/05/03 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
Myprotein俄罗斯官网:欧洲第一运动营养品牌
2019/05/05 全球购物
个人安全生产承诺书
2014/05/22 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
Tomcat执行startup.bat出现闪退的原因及解决办法
2022/04/20 Servers
详解SQL报错盲注
2022/07/23 SQL Server