Python. Простые алгоритмы
- Python. Простые алгоритмы
- Просмотров: 3542
12. Поиск количества различных чисел среди элементов массива
Дан список:
a= [1,2,3,4,5,5,7,8,0,0]
Способ 1. Использование цикла for
k=0 # количество равных чисел
n= len(a)
for i in range(n):
for j in range(i+1,n):
if a[i]== a[j]:
k += 1
break
print("Кол-во различных чисел:", n-k)
# Кол-во различных чисел: 8
Временная сложность: O (n*n)
Способ 2. Использование среза
count = 0
for i in range(len(a)):
if not a[i] in a[0:i]:
count += 1
print("Кол-во различных чисел:",count)
# Кол-во различных чисел: 8
Временная сложность: O (n)
Способ 3. Использование множества set()
count = len(set(a))
print("Кол-во различных чисел:",count)
# Кол-во различных чисел: 8
Временная сложность: O (1)
Способ 4. Использование цикла for в одном проходе. Требуется сортировка
a.sort()
count = 1
for i in range(1, len(a)):
count += a[i - 1] != a[i]
print("Кол-во различных чисел:",count)
# Кол-во различных чисел: 8
Временная сложность: O(n log n)
Способ 5. Использование генератора. Требуется сортировка
a.sort()
count = len([a[0]] + [a[i] for i in range(1, len(a)) if a[i - 1] != a[i]])
print("Кол-во различных чисел:",count)
# Кол-во различных чисел: 8
Временная сложность: O(n)
Способ 6. Использование вспомогательного списка
b = []
for x in a:
if x not in b:
b.append(x)
print("Кол-во различных чисел:",len(b))
# Кол-во различных чисел: 8
Временная сложность: O(n)