首页 > 试题广场 >

最大乘积

[编程题]最大乘积
  • 热度指数:6691 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1)

输入描述:
第一行是数组大小n,第二行是无序整数数组A[n]


输出描述:
满足条件的最大乘积
示例1

输入

4
3 4 1 2

输出

24
头像 牛客463999991号
发表于 2023-11-23 10:01:52
#include <stdio.h> int main() { int n; long long min1,min2,max1,max2,max3; int a[100005] = {0}; int i; while (scanf("% 展开全文
头像 bandiaoz
发表于 2024-12-28 17:09:29
解题思路 这是一道求最大乘积的问题,主要思路如下: 最大乘积可能来自两种情况: 最大的三个正数相乘 最大的正数乘以最小的两个负数(如果存在) 需要维护的变量: :最大的三个数 :最小的两个数 一次遍历即可找到所需的数字,比较两种情况得到最终结果 代码 cpp jav 展开全文