方法一 双指针
利用双指针的思路解决,具体方法见y总视频讲解。
n = int(input())
nums = list(map(int,input().split()))
nums.sort()
k = 1 # k计数
for i in range(1,n):
if nums[i] != nums[k-1]:
k += 1
nums[k-1] = nums[i]
print(k)
方法二 计数去重
保证每个数出现的次数不大于1,若存在次数大于1的数则删除多余的数。
n = int(input())
nums = list(map(int,input().split()))
for i in nums:
while nums.count(i)>1:
nums.remove(i)
print(len(nums))
方法三 集合去重
利用集合类型的不重复性解决问题,转换为集合后,集合的长度即为所求。
n = int(input())
print(len(set(map(int,input().split()))))