Python3如何实现从排序数组中删除重复项算法

  介绍

这篇文章主要介绍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如何实现从排序数组中删除重复项算法