计蒜客 第二十一题 排序后的数组删除重复数字

给定升序排序的数组,如果数组有 22 个或 22 个以上相同的数字,去掉他们,直到剩下 22 个为止。

例如:

数组 A[] = [1,1,1,2,2,3]

你的算法需要返回新数组的长度 5,

此时 A 为 [1,1,2,2,3]。

输入格式

第一行输入一个不超过 200 的数字 n,第二行输入 A[n]。

输出格式

输出新数组的长度。

样例输入

6
1 1 1 1 3 3
样例输出

4
做完之后看了一下 发现这样即使乱序也没问题。

X = input()
A = input().split()
#建字典记录元素个数
B = {} 
#记录删除次数
d = 0
for a in range(len(A)): 
    if A[a-d] not in B: 
        B[A[a-d]] = 1
    elif B[A[a-d]] < 2:
        B[A[a-d]] = B[A[a-d]] + 1
    else:
        del A[a-d]
        d = d + 1

print(len(A))

你可能感兴趣的:(计蒜客 第二十一题 排序后的数组删除重复数字)