首页 > 解决方案 > 以有效的方式计算数组中的唯一元素

问题描述

我不能发布比这更好的东西了:(Python 3.6)

N=int(input()) #count of input elements
a=[] #buffer
k=0 #counter
tel=0 #next number
for i in range(N):
    tel=int(input())
    if(not tel in a):
        a.append(tel)
        k+=1
print(k) #count of unique elements

但是我的老师说我的解决方案不是很有效,因为我将数据保存到数组a中......

嗯......他还说我应该将一些东西保存在变量中并永久重写它。

你对这个案子有什么想法吗?

UPD

“有效方式” - 程序必须使用尽可能少的内存,并尽可能快地运行

标签: python

解决方案


您可以将列表转换为一组(这将删除任何重复项)。集合的长度是原始列表中有多少个唯一元素。

例子:

print(len(set(int(input()) for _ in range(int(input())))))

推荐阅读