牛客真题(21)-最大乘积

继续刷牛客真题,求一个给定数组中,某三个数的乘积的最大值。

分析:
首先对于给定的数组,可能是乱序的,就需要对数组进行排序,按照从下到大排序的时候,最大乘积分两种可能,一种是最大,次大,次次大三个数,一种是最大,最小,次小(可能存在负数的情况)。然后比较两种情况的大小,输出较大的。

问题:
1、Python中sorted函数返回的是一个新的列表。
2、bug:如果输入的数的个数小于3,那么结果会是多少???

附上C++代码:

#include
#include
#include
using namespace std;
int main()
{
    int n;
    cin>>n;
    vector A;
    long long x;
    for(int i=0;i>x;
        A.push_back(x);
    }
    if(n<3)
        cout<<0<

附上Python代码:

n=int(input())
A=list(map(int,input().split()))
A=sorted(A)
print(max(A[0]*A[1]*A[-1],A[-1]*A[-2]*A[-3]))

你可能感兴趣的:(代码训练)