В чем разница между этими двумя операторами возврата? - PullRequest
0 голосов
/ 29 октября 2018

Это вопрос от CodeSignal. Я попробовал второй фрагмент кода снизу, и он не прошел все тесты. Но первый фрагмент сделал. Зачем? В чем разница между этими двумя фрагментами?

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

def adjacentElementsProduct(inputArray):
    return max([inputArray[i]*inputArray[i+1] for i in range(len(inputArray)-1)])


def adjacentElementsProduct(inputArray):
    for i in range(len(inputArray)-1):
        return max([inputArray[i]*inputArray[i+1]])

1 Ответ

0 голосов
/ 29 октября 2018

Вы пробовали это?

Первый возвращает максимум списка.

Второй возвращает inputArray[0]*inputArray[1]. Цикл никогда не выполняется до конца.

...