首页 > 试题广场 >

三个数的最大乘积

[编程题]三个数的最大乘积
  • 热度指数:27323 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个长度为 的无序数组 ,包含正数、负数和 0 ,请从中找出 3 个数,使得乘积最大,返回这个乘积。

要求时间复杂度: ,空间复杂度:

数据范围:


示例1

输入

[3,4,1,2]

输出

24
class Solution:
    def solve(self , A: List[int]) -> int:
        # write code here
        A = sorted(A,reverse=True)
        ans1 =  A[0] * A[1] * A[2] # 前三个数
        ans2 = A[0] * A[-1] * A[-2]  #从大到小排序后,最后两个是负数的情况
        return max(ans1, ans2)
编辑于 2024-04-22 22:04:35 回复(0)
class Solution:
    def solve(self , A: List[int]) -> int:
        A.sort()
        return max(A[-1]*A[-2]*A[-3],A[0]*A[1]*A[-1],)

发表于 2022-05-17 10:56:47 回复(0)

问题信息

上传者:牛客332641号
难度:
3条回答 5438浏览

热门推荐

通过挑战的用户

查看代码
三个数的最大乘积