首页 > 解决方案 > 这两个返回语句有什么区别?

问题描述

这是来自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]])

标签: pythonarraysmax

解决方案


你试过这些吗?

第一个返回列表的最大值。

第二个返回inputArray[0]*inputArray[1]。循环永远不会执行到结束。


推荐阅读