最大乘积 - 拼多多
题目描述
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)
输入描述:
无序整数数组A[n]
输出描述:
满足条件的最大乘积
示例1
输入
3 4 1 2
输出
24
n = int(input().strip()) # 题目上没说输入n呀,看了答案才加了这一行,汗... list = list(map(int, input().strip().split())) # list = [int(i) for i in input().strip().split() ] list = sorted(list) # list.sort() try: ans = max(list[-1] * list[-2] * list[-3], list[0] * list[1] * list[-1]) print(ans) except: print(0)
补充:
虽然python3中sort()和sorted()都可以用来排序,但二者有以下两个最主要的区别:
1. sort只能应用在列表list上,而sorted可以对所有可迭代的对象进行排序的操作
2. sort方法会在原list上直接进行排序,不会创建新的list。而sorted()函数只会返回一个排序后的当前对象的副本,而不会改变当前对象。