首页 > 试题广场 >

最大乘积

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

输入描述:
输入共2行,第一行包括一个整数n,表示数组长度
第二行为n个以空格隔开的整数,分别为A1,A2, … ,An


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

输入

4
3 4 1 2

输出

24
头像 牛客题解官
发表于 2020-06-05 18:21:13
精华题解 题解 难度:简单 知识点:数学逻辑 最大值只能出现在以下两种情况的较大值: 最大的三个正数的乘积 最小的两个负数*最大的正数的乘积 所以找出最大三个正数和最小的两个负数这5个数即可但是这道题要求时间复杂度o(n),但是空间复杂度o(1)如果先把所有数存到数组中,然后排序找出这5个数,那么空间复杂 展开全文
头像 fred-coder
发表于 2022-03-01 14:43:38
对数组进行排序; 若均为正数或均为负数或负数个数<2,则最大值应为 data[-1] * data[-2] * data[-3] 若负数数量为2 则最大值可能为 data[0] * data[1] * data[-1] 最大值为二者之一 import sys n = int(sys.std 展开全文
头像 健康快乐最重要
发表于 2020-03-14 17:29:49
//确定五个数 //1.当题目中全是正数或者全是负数的时候,三个最大的相乘(max1,max2,max3)。 //2.部分正数或者部分负数的时候,正数最大数*两个负数最小数(max1*min1*min2),两个正数最大数*一个负数最大数(包含在1中) #include<iostream> 展开全文
头像 嘉然今天吃晚晚
发表于 2020-08-01 13:11:40
最大积res只有两种情况,res=Max(最大的数 次大的数 第三大的数,最大的数 最小的数 次小的数)举例说明的话就是,如:[1,2,3,4],[-4,-3,-2,-1],[-2,-1,0,100,200,300]都是取第一种情况如[-200,-100,0,1,2,3]就是取第二种情况 publi 展开全文
头像 围城mmn
发表于 2024-04-17 20:59:10
import sys n = int(input()) lis = list(map(int,input().split())) lis.sort() ans = max(lis[0]*lis[1]*lis[-1],lis[-1]*lis[-2]*lis[-3]) print(ans)
头像 zzfyupup
发表于 2022-11-03 17:38:43
#include <stdio.h> #include<malloc.h> /* 最大值只有两种情况 最大的三个正数的乘积 最小的两个负数*最大的正数的乘积 */ int main() { int n, i; scanf("%d", &n); 展开全文
头像 练习时长两年半的卡尔很想去上海
发表于 2024-08-16 10:16:57
import sys def max_mat(a,n): global result2 global index a.sort() for i in range(n): if a[i]>=0: index=i 展开全文
头像 (≧∇≦)三玖
发表于 2019-09-13 15:40:22
方法一1 维持正数的前三的一个列表2 负数后三的一个列表3 0单独一个列表长为三然后负列表+0列表+正列表 return max(result[0]*result[1]*result[-1],result[-3]*result[-2]*result[-1])如下 def pri(m,a): 展开全文
头像 在写文章的雪碧很洒脱
发表于 2024-11-08 16:45:35
import sys leng = int(sys.stdin.readline()) a1=0 a2=0 a3=0 b1=0 b2=0 b3=0 l= [] arr = sys.stdin.readline().split() # print(leng,arr) for i in arr: 展开全文
头像 Nicole_jian
发表于 2024-06-10 08:49:59
def max_product(nums): min1 = min2 = float('inf') max1 = max2 = max3 = float('-inf') for num in nums: if num < min1: 展开全文
头像 帅气的风
发表于 2023-03-16 14:17:17
import java.util.*; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new S 展开全文