2019.4 哈喽单车面试题:股票列表数据找出最佳买入和卖出点
思路:记录扫描到index = i 时候的最小值。diff定义的是i点的最大差;也就是在最小值固定的情况下,我们的 i 对应的值越大,差额越大。
def maxbuns(array): if len(array)<2: return None # 在扫描到i时候,需要记录i之前的最小值 minNum = array[0] maxDiff = 0 for i in range(2,len(array)): if array[i-1]<minNum: minNum = array[i-1] diff = array[i]-minNum if diff > maxDiff: maxDiff = diff # return maxDiff buy_time = array.index(minNum) sell_time = array.index(maxDiff+minNum) return buy_time,sell_time,maxDiff if __name__ == "__main__": array = [9,11,8,5,7,12,16,14] print(maxbuns(array))