一、思路
用set(num)可以获得非重复数据,但不能保留数组的其他值,可以根据set(num)的数组,依次判断数据循环。一次判断相邻数据是否还存在相同值,若存在则将数据记录到变量中并将其后面的数组往前移动一个位置,剩下最后一个数组位置用变量值赋值。
二、输出结果
三、代码实现
def removeDuplicates(nums):
mun = set(nums)
#获取不相同数据的个数
n = len(set(nums))
i = 0
while i < n:
#判断相邻的数据是否相等,若相等则将数据替换至末尾
if nums[i] == nums[i+1]:
temp = nums[i+1]
#后续数据对前面数据进行覆盖
nums[i+1: len(nums) -1] = nums[i+2:]
#增加最后一个数据,此数据为相同的数据值,nums[i+1]
nums[-1] = temp
#继续进行判断,进入while循环
continue
#若后续数据没有相等值则进行第二个值的判断
else:
i += 1
return n
if __name__ == "__main__":
nums = [0, 0, 1, 1, 1, 2, 2, 3, 3, 4]
print(" nums = %s" %nums)
print(removeDuplicates(nums))
print("nums = %s" %nums)