G. Максимальный максимум

Работа с таблицами чисел — важный навык, особенно если вы анализируете данные.
Попробуем найти самое большое число в такой таблице.

Напишите функцию max2D(matrix), которая принимает список списков целых чисел и возвращает максимальный элемент.

Примечание

В решении не должно быть вызовов требуемых функций.

Пример

Ввод

result = max2D([[1, 1, 1], [1, 2, 1], [1, 1, 1]])

Вывод

result = 2

Ввод

result = max2D([[-5, -43, 72, 89], [-40, 92, -1, -73], [30, -75, 23, 94]])

Вывод

result = 94

Решение

Классическая задача на поиск максимума среди элементов – Принимаем за максимум первый элемент, затем пробегаемся по элементам и если нашли больший, чем текущий максимум – запоминаем его.

Три решения: классическое – через циклы, через строчное выражение и с помощью рекурсии.

Третье решение абегает вперед и представлено не как рекомендованное, а чтобы показать дополнительные возможности рекурсии при решении подобных задач. РЕШЕНИЕ НЕ ПРОХОДИТ ТЕСТ, потому, что вызывать функцию запрещено по условию задачи. Несомненно, код выглядит более громоздким и запутанным, но его сила в том, что ему вообще без разницы какова вложенность списков и насколько однородны эти списки. Он найдет максимум даже в таком списке: [[-5, -43, 72, 89], [-40, 92, [-1, -73]], [30, -75, 23, 94], 100]

Решение

Посмотреть код
Python
def max2D(matrix):
    max_value = matrix[0][0]
    for row in matrix:
        for number in row:
            if number > max_value:
                max_value = number
    return max_value

Решение

Python
def max2D(matrix):
    return max(max(row) for row in matrix)

Решение

Python
def max2D(matrix, maximum=None):
    if not matrix:
        return maximum

    for element in matrix:
        if isinstance(element, list):
            nested_max = max2D(element, maximum)
            if nested_max is not None and (maximum is None or nested_max > maximum):
                maximum = nested_max
        elif isinstance(element, (int, float)):
            if maximum is None or element > maximum:
                maximum = element

    return maximum
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии