числа которые встречаются только один раз.
Ниже код, возможно сделать быстрее?
maxim = int(input())
test = list(map(int, input().split()))
rez = {}
full_rez =[]
for x in test:
if not rez.get(x):
rez[x] =1
else:
rez[x] += 1
key_rez = rez.keys()
for t in key_rez:
if rez[t] == 1:
print(t)
full_rez.append(t)
print(len(full_rez))
конечно можно
В плане сложности (O) - нет, а так - ты collections.Counter изобрёл. За счёт того что он частично на C (и в целом менее ветвистый) - будет быстрее
проверил по той дневной задаче — действительно, с Counter на 100 запусках (на словаре длиной 1000) меньше секунды, а с тем способом в цикле почти минута (пытаюсь понять откуда такая разница). и с chain действительно быстрее чем с суммой списков (с ней Counter набирает неск секунд)
Ну там у тебя много лишних манипуляций было. Сейчас не вспомню, каких именно, просто глаза зацепились тогда за сообщение.
🙈😂 я про счётчик вхождений. Блин ну может быть. Просто привык такие задачи решать без библиотек
Хочешь без библиотек - спрячь хоть в компрехеншен. :-D
Обсуждают сегодня