介绍
这篇文章主要介绍Python3如何实现从排序数组中删除重复项算法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
Python3实现从排序数组中删除重复项算法,具体如下:
<强>题目:强>给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。
不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。
<强>方案一:>强利用<代码>设置()代码>快速剔除重复元素。效率最高
#, - *安康;编码:utf-8 - * - # ! python3 def removeDuclicates (num): num才能[:],=,排序(设置(num)) return 才能len (num) #测试 arr1 =, (1, 1、2、3、4、5、5、6) print (removeDuclicates (arr1)
运行结果:
6引用>
<强>方案二:强>双指针法。效率次之
#, - *安康;编码:utf-8 - * - # ! python3 def removeDuplicates (num): if 才能;not  num: ,,return 0 j 才能=0 for 才能小姐:拷贝范围(1,len (num)): ,,,if num [j], !=, num[我]: ,,,,,j +=1 ,,,,,num [j],=, num[我] return 才能;j  + 1 #测试 arr1 =, (1, 1、2、3、4、5、5、6) print (removeDuplicates (arr1)运行结果:
6引用>
<强>方案三:>强利用<代码>删除()代码>方法。效率次之
#, - *安康;编码:utf-8 - * - # ! python3 def removeDuplicates (num): 小姐:才能=0 while 才能小姐:& lt;, len (num),安康;1: ,,,if num[我],==,num[小姐:+,- 1): ,,,,,nums.remove (num[我]) ,,,: ,,,,,小姐:+=1 return 才能len (num) #测试 arr1 =, (1, 1、2、3、4、5、5、6) 打印(removeDuplicates (arr1)运行结果:
6
引用>Python3如何实现从排序数组中删除重复项算法