Форум » Обработка числовых последовательностей » Есть ли разница в эффективности? » Ответить

Есть ли разница в эффективности?

mendez: Здравствуйте. Мое решение к заданию 76 на Python отличается, как кажется, только видом массива ("словарь" вместо "списка") и другим способом нахождения минимальных значений. Есть ли существенная для ЕГЭ разница в эффективности между этими программами? Условие: [more] Назовём длиной числа количество цифр в его десятичной записи. Например, длина числа 2017 равна 4, а длина числа 7 равна 1. Дан набор из N целых положительных чисел, каждое из которых не превышает 109. Необходимо определить, числа какой длины реже всего (но не менее одного раза) встречаются в данном наборе и сколько в нём чисел этой длины. Если числа разной длины встречаются одинаково часто (и реже, чем числа любой другой длины), нужно выбрать меньшую длину. Напишите эффективную по времени и по памяти программу для решения этой задачи. В первой строке входных данных задаётся количество чисел N (1 ≤ N ≤ 10000). В каждой из последующих N строк записано одно натуральное число, не превышающее 109.[/more] Решение с сайта: count = [0]*11 N = int(input()) for i in range(N):s = input()num_len = len(s)count[num_len] += 1minCount = N + 1 for i in range(1,10):if count > 0 and count < minCount:minCount = countminLen = iprint(minLen, minCount) Мое решение: N=int(input()) l={} for i in range(N): x=len(input())l[x]=l.get(x,0)+1print(l) ml=min(l.values()) d=min([x[0] for x in l.items() if x[1]==ml]) print(d, ml)

Ответов - 1

Поляков: Нет, разницы в эффективности нет.



полная версия страницы