Определение медианного из трёх чисел

Отсортируйте три числа и верните элемент с индексом 1. Это медиана, включая случаи с равными значениями.

Короткий ответ

Что ответить на собеседовании

Отсортируйте три числа и верните элемент с индексом 1. Это медиана, включая случаи с равными значениями.

Подробный разбор

Ответ с пояснениями

Условие

Реализуйте функцию find_middle_number(), принимающую три параметра в указанном порядке:

  • x — целое число (|x| ≤ 10³);
  • y — целое число (|y| ≤ 10³);
  • z — целое число (|z| ≤ 10³).

Функция должна вернуть число, которое находится посередине по величине среди переданных значений x, y, z.

Ограничения Функция обязана возвращать медианное (по величине) значение из трёх входных чисел.

Пример 1:

print(find_middle_number(1, 2, 3))

Вывод: 2

Пример 2:

print(find_middle_number(3, 1, 2))

Вывод: 2

Ответ

Отсортируйте три числа и верните элемент с индексом 1. Это медиана, включая случаи с равными значениями.

def find_middle_number(x, y, z):
    return sorted((x, y, z))[1]

Примеры: (1, 2, 3) и (3, 1, 2) дают 2; (5, 5, 9) — 5; (-3, 0, -1) — -1. Для фиксированного количества из трёх значений время и память постоянны.

Альтернатива для целых чисел: x + y + z - min(x, y, z) - max(x, y, z). Она также корректно учитывает повторы, поскольку удаляет по одному минимальному и максимальному значению, а не все их вхождения.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее