Konstantin
жду
Slam!
Michael
выводит 7
Slam!
не понял
Slam!
а, все
Tishka17
a=set(data)
min(x for x in range(len(data)) if x not in a)
Slam!
я задачу не так понял
Konstantin
найти наименьшее положительное число, которое отсутствует в массиве
Konstantin
[1, 3, 6, 4, 1, 2] - тут это 5
Konstantin
[1, 2, 3] - тут 4
Konstantin
[-1, -3] - тут 1
Konstantin
это 3 теста для задачи
dev
а задача олимпиадная и размер массива стремится к бесконечности? или на отъ*бись по скорости можно делать?
Проксимов
Проксимов
Можно отсортировать
Konstantin
да я просто решил человеку... тот, кому надо было решение пропал )))
Konstantin
теперь видимо просто оптимизируем код )
Slam!
dev
ваще какое жирное)) за такое ногами бьют))
dev
тут не питон даже, тут алгоритм для начала надо придумать
Konstantin
dev
ну смотря какому преподу сдавать)
dev
по какому предмету в смысле
dev
отсортировать по любому придётся(есть ограничения по памяти? какова максимальная длина массива)
а дальше просто по циклу i=0;i++, как не совпало, значит оно)
dev
* i=1
Проксимов
Можно и не сортировать наверное
Slam!
set
Slam!
Tishka17
Жду замеров
Tishka17
А вот хз
Michael
A1 = [1, 3, 6, 4, 1, 2]
A2 = [1, 2, 3]
A3 = [-1, -3]
def solution(A):
my_list = list(filter(lambda i: i >= 1, sorted(set(A))))
if my_list:
return sum(range(my_list[0], my_list[-1] + 1)) - sum(my_list) or my_list[-1] + 1
return 1
Tishka17
Нет, из-за формулировки
Michael
еще пример
Slam!
A1 = [1, 3, 6, 4, 1, 2]
A2 = [1, 2, 3]
A3 = [-1, -3]
def solution(A):
my_list = list(filter(lambda i: i >= 1, sorted(set(A))))
if my_list:
return sum(range(my_list[0], my_list[-1] + 1)) - sum(my_list) or my_list[-1] + 1
return 1
Tishka17
По крайней мере память
Slam!
но не скорость(
Tishka17
Может и скорость, я плохо знаю как там хэши у чисел устроены
Slam!
ибо первый цикл жирнее чем второй
Slam!
да и если полно дубликатов, то об экономии не может идти речи :(
Slam!
set был лучше
Konstantin
так какой короткий итоговый вариант?
Tishka17
Konstantin
С set
покажи рабочий код)
Tishka17
Но в зависимости от данных может и второй
Tishka17
a=set(data)
min(x for x in range(len(data)) if x not in a)
Tishka17
Tishka17
А нихуя он не быстрый
Tishka17
Ща
Aragaer
эм
Aragaer
min(set(data)-set(a))
Konstantin
так он что-то и не работает
Aragaer
не?
Slam!
Slam!
мы же не дубликаты достаем
Konstantin
Slam!
Tishka17
a=set(data)
result=next(x for x in range(len(data)) if x not in a)
Tishka17
Что-то такое вообще
Slam!
Konstantin
неверный ответ
Tishka17
Ща
Slam!
нужно единицу добавить в range
Slam!
range(1, len(data))
Tishka17
a=set(data)
result=next(
x for x in range(1, len(data)+1) if x not in a
)
Slam!
да, +1
Tishka17
Я не очень вникал какие числа считаются
Tishka17
Konstantin
о, теперь красиво ))
Tishka17
Я думал обязательно что-то пропущено
Ruslan
в pyQt реально обновить данные в форме без блокирующей операции?
в моем случае в TreeWidget
примеры из интернета только создают поток чтобы не вызывать задержку получения данных, а сам момент присвоения новых данных вызывается с блоком
Tishka17