Как найти число, которое повторяется n-ое кол-во раз быстрее?
Такс, большие умы стэка, обращаюсь к вам за помощью.
Есть список с большим кол-вом цифр. Пример: [1,3,2,1,2,3,1,2,3,3,2,1,1,2]. Дело в том, что надо получить из этого списка то число, которое повторяется n-ое кол-во раз быстрее. То есть, n = 3 и надо найти то число, которое повторится 3 раза быстрее остальных. В данном массиве это будет 1. Никак не могу дотумкать как это сделать, подскажите, пожалуйста?
Ответы (2 шт):
Автор решения: Danis
→ Ссылка
n = 3
arr = [1,3,2,1,2,3,1,2,3,3,2,1,1,2]
dict_ = {el: 0 for el in set(arr)}
for el in arr:
dict_[el] += 1
if dict_[el] == n:
print(el)
break
Автор решения: Zhihar
→ Ссылка
способ 1:
data = [1,3,2,1,2,3,1,2,3,3,2,1,1,2]
n = 3
arr = dict(zip(set(data), [0] * len(data)))
for i in data:
arr[i] += 1
if arr[i] == n:
print(i)
break
способ 2:
очень неоптимально по скорости, но зато в 1 строку:
print([data[i] for i in range(len(data)) if data[:i+1].count(data[i]) == n][0])