Member 13465008 Ответов: 2

Учитывая массив целых чисел, найдите пару соседних элементов, которая имеет наибольшее произведение, и верните это произведение.


Теперь из этого списка лис как я могу найти максимальное число???
Примечание: max() показывает ошибку NoneType

Что я уже пробовал:

def adjacentElementsProduct(inputArray):
    for i in range(0, len(inputArray)-1):
        lis=(inputArray[i]*inputArray[i+1])
        print(lis)

Patrice T

Где находится функция max в вашем коде ?

2 Ответов

Рейтинг:
2

Member 14870767

def adjacentElementsProduct(inputArray):
    lst1 = 0
    for i in range(0, len(inputArray)-1):
        lst2 = inputArray[i] * inputArray[i+1]
        if lst2 > lst1:
            lst1 = lst2<
    return lst1


Richard MacCutchan

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

Рейтинг:
1

OriginalGriff

То, что вы ищете, - это самое большое произведение двух чисел в списке: это означает умножение каждой пары и сравнение каждого с предыдущим максимумом, а не просто печать каждого продукта.
Так что попробуйте это:
1) Создайте переменную вне цикла, назовите ее maxSoFar и установите его на произведение первой пары.
2) петля через каждый элемент (кроме последнего)
2.1) умножьте каждый элемент на следующий после него.
2.2) сравните это значение с maxSoFar
2.2.1) если он больше, установите maxSoFar к новому продукту.
3) продолжайте цикл
4) после цикла распечатайте maxSoFar

Все просто! Но... это твое домашнее задание, так что я не дам тебе никакого кода! Попробуйте - это действительно несложная задача.