python去重复排序_Python实现删除排序数组中重复项的两种方法示例
本文实例讲述了Python实现删除排序数组中重复项的两种方法。分享给大家供大家参考,具体如下:
对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度
注意:不能为新数组申请额外的空间,只允许申请O(1)的额外空间修改输入数组
Example 1:
Given nums = [1,1,2],
Your function should return length = 2, with the first two elements of nums being 1 and 2 respectively.
It doesn't matter what you leave beyond
Example 2:
Given nums = [0,0,1,1,1,2,2,3,3,4],Your function should return length = 5, with the first five elements of nums being modified to 0, 1, 2, 3, and 4 respectively.
It doesn't matter what values are set beyond the returned length.
说明:为什么返回列表长度而不用返回列表?因为列表传入函数是以引用的方式传递的,函数中对列表进行的修改会被保留。
// nums is passed in by reference. (i.e., without making a copy)
int len = removeDuplicates(nums);
// any modification to nums in your function would be known by the caller.
// using the length returned by your function, it prints the first len elements.
for (int i = 0; i < len; i++) {
print(nums[i]);
}
1. 简单判断列表中元素是否相等,相等就删除多余元素
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums:
return 0
if len(nums)==1: #单独判断列表长度为1的情况,因为之后的for循环从下标1开始
return 1
temp_num = nums[0]
count =0 #for循环中动态删除列表元素,列表缩短,为了防止下标溢出需要用count标记删除元素个数
for index, num in enumerate(nums[1:]):
if temp_num == num: #元素相等就删除
del nums[index-count]
count += 1
else:
temp_num = num
return len(nums)
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
forth = 0
back = 1
while back <= len(nums)-1:
if nums[forth] == nums[back]:
nums.pop(back)
else:
forth += 1
back += 1
return len(nums)
2. 修改数组,保证数组的前几个数字互不相同,且这几个数字的长度同返回长度相等
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if not nums:
return 0
length = 0 #不存在重复数字的数组长度
for index in range(1,len(nums)): #遍历数组
if nums[index] != nums[length]:
length += 1
nums[length] = nums[index]
return length+1
算法题来自:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/description/
PS:本站还有两款比较简单实用的在线文本去重复工具,推荐给大家使用:
希望本文所述对大家Python程序设计有所帮助。
python去重复排序_Python实现删除排序数组中重复项的两种方法示例相关推荐
- python右对齐格式化输出_Python中格式化输出的两种方法介绍
本篇文章给大家带来的内容是关于Python中格式化输出的两种方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 方式一:使用占位符 % 常用占位符:% s (s = string ...
- python字典取值_python 字典中取值的两种方法小结
python 字典中取值的两种方法小结 如下所示: a={'name':'tony','sex':'male'} 获得name的值的方式有两种 print a['name'],type(a['name ...
- python自带的shell是什么-python中执行shell的两种方法总结
一.使用python内置commands模块执行shell commands对Python的os.popen()进行了封装,使用SHELL命令字符串作为其参数,返回命令的结果数据以及命令执行的状态: ...
- 站长在线Python精讲:在Python中格式化字符串的两种方法详解
欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...
- python生成100个随机数_Python_0——100闭区间产生3个随机数,两种方法排序
''' 题目:0--100闭区间产生3个随机数,两种方法排序 法1:暴力遍历 法2:max(a,b,c)min(a,b,c) 注意:random,radint(0--100)产生随机数 '''impo ...
- python读取二维数组的行列数_Python获取二维数组的行列数的2种方法
Python获取二维数组的行列数的2种方法 这篇文章主要介绍了Python获取二维数组的行列数的2种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考 ...
- java去重复元素并打印_Java打印数组中重复元素
Java打印数组中重复元素 1 说明 在此程序中,我们需要打印数组中存在的重复元素.这可以通过两个循环来完成.第一个循环将选择一个元素,第二个循环将通过将所选元素与其他元素进行比较来遍历整个数组.如果 ...
- angularjs 元素重复指定次数_[LeetCode] 442. 数组中重复的数据
[LeetCode] 442. 数组中重复的数据 题目链接: https://leetcode-cn.com/problems/find-all-duplicates-in-an-array 难度:中 ...
- java如何找重复数字_Java如何找出数组中重复的数字
题目描述:找出数组中重复的数字,具体内容如下 在一个长度为n的数组里的所有数字都在 0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次.请找出数组中任意 ...
最新文章
- 微信小程序提示 出现脚本错误或者未正确调用 Page()
- 后端开发工程师的DIV+CSS两栏布局入门
- 如何忽略word的单词检错功能
- [py2neo]Ubuntu14 安装py2neo失败问题解决
- Gruntjs: grunt-contrib-jst
- 【Python】绘制哆啦A梦
- mysql-fron快速写sql语句,SQL优化系列:如何书写高质量SQL语句(一)
- 七年前的电脑可以用python_1年前的小五都用 Python 来做什么?
- 吉他扒谱该怎么做?分享一款超好用的扒谱工具!
- c 导出html表格数据格式文件,将html网页导出excel表格数据/如何将html页面中的表格导出到excel表格...
- UG NX10 NX12 用曲线方程式绘制实体模型的方法
- SI4463的数据冲撞解决办法【转】
- python从入门到入土图片_python学习手册-爬爬那些年咱没见过的校花图片
- Android4.1 新功能 新特性
- 一对一直播源码,实现一个简单的登录界面
- 大牛博士是如何进行文献检索和阅读的
- sed删除空行、换行符的方法 (包括空格、特殊字符、tab等组成的空行) vim删除^M
- dell服务器维修过程
- 97-things-every-programmer-should-know-1: 谨慎行事
- 简约实用的epub阅读器
热门文章
- 嵌入式linux寄存器位运算,嵌入式linux C语言(一)――位运算的使用
- 计算机跳转列表常用组合框,2015计算机二级VB考点复习指导:列表框和组合框
- sql判断时间大于0点_Java秒杀系统实战系列-数据库级别Sql的优化与代码的调整
- python对于文件的读取和重建
- Redis教程:数据对象分析(二)
- java代码删除本地文件_java程序实现删除本地文件
- mysql执行计划id相同_MySQL|MySQL执行计划
- Android Gradle Task-中文
- UVA12169模运算
- Java中的生产消费者问题