Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 15, 2021 16:08:07

mclarencourse
Зарегистрирован: 2021-12-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Самое большое число и его позиция

Ограничение по времени: 1 сек
Ограничение по памяти: 256 Мб

Дано 100 уникальных целых чисел. Среди них выведите самое большое число и его позицию.

Формат входных данных
Целые числа в интервале от 0 до 100 тыс. .

Формат выходных данных
На первой строке выведите самое большое число, на второй его позицию во входе

Пример
Входные данные Выходные данные
100————————–96720
123—————————–3
96720
12345

98

Отредактировано mclarencourse (Дек. 15, 2021 16:12:09)

Офлайн

#2 Дек. 15, 2021 17:17:22

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 8541
Репутация: +  762  -
Профиль   Отправить e-mail  

Самое большое число и его позиция

mclarencourse
Ограничение по времени: 1 сек
Ограничение по памяти: 256 Мб
Попробуй так. Возможно уложишься в одну секунду.
  
>>> import sys
>>> 
>>> def f():
...     lst = sys.stdin.read().split()
...     maxn = 0
...     maxni = 0
...     for i, n in enumerate(map(int, lst), 1):
...         if n > maxn:
...             maxni, maxn = i, n
...     print(maxn)
...     print(maxni)
... 
>>> f()
1 2 3 4
8 3 5 1 2 7 
3 4 5
6
8
5
>>>



Офлайн

#3 Янв. 12, 2022 12:27:52

Demsy
Зарегистрирован: 2022-01-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Самое большое число и его позиция

как вариант

 lst=[] #Исходный список
lst2=lst[:]
lst2.sort()
print(f"number: {str(lst2[99])}")
print(f"position: {str(lst.index(lst2[99])-1)}")

Отредактировано Demsy (Янв. 12, 2022 12:41:50)

Офлайн

#4 Янв. 12, 2022 14:56:02

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2555
Репутация: +  178  -
Профиль   Отправить e-mail  

Самое большое число и его позиция

 >>> s = [ random.randrange(100, 100000) for x in range(20) ]
>>> s
[72200, 87556, 85438, 20588, 63308, 55704, 31307, 16656, 78439, 61496, 1864, 98713, 29556, 99207, 95670, 81607, 98036, 69056, 62810, 44731]
>>> max(s)
99207
>>> s.index(max(s))
13



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Янв. 12, 2022 15:25:17

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8165
Репутация: +  563  -
Профиль   Отправить e-mail  

Самое большое число и его позиция

Demsy
как вариант
очень плохой вариант, совсем никуда



Офлайн

#6 Янв. 16, 2022 09:27:05

Demsy
Зарегистрирован: 2022-01-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Самое большое число и его позиция

FishHook
очень плохой вариант, совсем никуда
Чем он плох?

Офлайн

#7 Янв. 16, 2022 13:04:05

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 8541
Репутация: +  762  -
Профиль   Отправить e-mail  

Самое большое число и его позиция

Demsy
FishHook
очень плохой вариант, совсем никуда
Чем он плох?
Сначала создаёшь список второй. Это время и память.
Затем сортируешь его. Это время.
Потом ищешь элемент. Это время.

В итоге ты три раза тратишь время впустую и один раз тратишь память впустую, тогда как можно не тратить ни первое, ни второе вообще.

Выше показан однопроходный алгоритм (самый быстрый), который использует только две переменные, которые по памяти практически ничего не занимают.



Офлайн

#8 Янв. 19, 2022 06:26:32

Demsy
Зарегистрирован: 2022-01-12
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Самое большое число и его позиция

Ясно, благодарю.

Отредактировано Demsy (Янв. 19, 2022 06:26:43)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version