Программа курса:
Разбор задачи: Третье максимальное число
Предложенный нами код решения:
def third_max(nums):
"""
:param nums: список целых чисел
:return: третье по величине уникальное число, если оно существует, иначе максимальное число
"""
unique_nums = list(set(nums)) # Убираем дубликаты
unique_nums.sort(reverse=True) # Сортируем по убыванию
# Если третье по величине число существует, возвращаем его
if len(unique_nums) >= 3:
return unique_nums[2]
# Если третье по величине число не существует, возвращаем максимальное
return unique_nums[0]- Обработка входных данных:
- Функция
third_max(nums)принимает один параметр: список целых чиселnums. - Задача состоит в том, чтобы найти третье по величине уникальное число в списке. Если третье по величине число отсутствует, необходимо вернуть максимальное число из списка.
- Функция
- Удаление дубликатов:
- На первой строке кода создается множество с помощью
set(nums). Множество автоматически удаляет все дубликаты в списке, оставляя только уникальные элементы. - Затем это множество преобразуется обратно в список с помощью
list(), так как множество не сохраняет порядок элементов, а список позволяет работать с элементами по индексам.
- На первой строке кода создается множество с помощью
- Сортировка элементов:
- Сортировка уникальных элементов выполняется с использованием метода
sort(reverse=True), который сортирует список в порядке убывания. То есть, на первом месте будет максимальное число, на втором — второе по величине и так далее.
- Сортировка уникальных элементов выполняется с использованием метода
- Проверка длины списка:
- После сортировки мы проверяем длину списка уникальных чисел. Если в нем содержится хотя бы 3 элемента, то существует третье по величине число, которое можно вернуть.
- В случае, если уникальных элементов меньше трех, то возвращается максимальное число, которое находится в первом элементе отсортированного списка.
- Возврат результата:
- Если список уникальных элементов имеет длину 3 или больше, функция возвращает третий элемент (индекс 2) из отсортированного списка.
- Если третий элемент отсутствует, то возвращается первый элемент (максимальное число).
Пример:
Пример 1:
third_max([3, 2, 1])
- Уникальные числа:
[3, 2, 1] - После сортировки:
[3, 2, 1] - Третье по величине число:
1 - Ответ:
1
Пример 2:
third_max([1, 2])
- Уникальные числа:
[1, 2] - После сортировки:
[2, 1] - Третье по величине число не существует, поэтому возвращаем максимальное:
2 - Ответ:
2
Пример 3:
third_max([2, 2, 3, 1])
- Уникальные числа:
[2, 3, 1] - После сортировки:
[3, 2, 1] - Третье по величине число:
1 - Ответ:
1
xsnm
,Функция third_max. Время выполнения 0.0000000000 секунд
Ввод: [1, 2, 3, 4]
Результат: = 2
Функция third_max_May. Время выполнения 0.0000000000 секунд
Ввод: [1, 2, 3, 4]
Результат: = 3