网站首页 > 文章精选 正文
题目:
给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例:
输入:nums = [1,2,3,4]
输出:24
思路:
如果所有数都是正数,那么乘积最大的三个数是最大的三个正数;
如果所有数都是负数,那么乘积最大的三个数是最大的三个负数;
如果所有数有正有负,那么乘积最大的三个数可能是:1. 最大的正数、两个最小的负数;2. 三个最大的正数
综上:需要计算得出最大的三个数和最小的两个数
代码:
class Solution {
public:
int maximumProduct(vector<int>& nums) {
long large[]={LONG_MIN, LONG_MIN, LONG_MIN};
long small[]={LONG_MAX, LONG_MAX};
for(auto& val: nums)
{
if(val > large[0])
{
large[2] = large[1];
large[1] = large[0];
large[0] = val;
}else if(val > large[1])
{
large[2] = large[1];
large[1] = val;
}else if(val > large[2])
{
large[2] = val;
}
if(val < small[0])
{
small[1] = small[0];
small[0] = val;
}else if(val < small[1])
{
small[1] = val;
}
}
return max(large[0]*large[1]*large[2], small[0]*small[1]*large[0]);
}
};
猜你喜欢
- 2025-05-10 Java手写一个bitmap(java手写代码)
- 2025-05-10 MySQL有哪些实现方式?何为插入,何为更新?
- 2025-05-10 自学 C++ 第 6 课 二维数组找最值
- 2025-05-10 斐波那契查找算法(斐波那契查找算法java)
- 2025-05-10 YARN 资源调度器 CapacityScheduler 原理
- 2025-05-10 8张图带你全面了解kafka的核心机制
- 2025-05-10 java数据类型的转换以及精度丢失(java中基本数据类型转换)
- 2025-05-10 C语言中用宏实现求两个数中的最大数
- 2025-05-10 异或的魅力!图解「数组中两个数的最大异或值」
- 2025-05-10 基础函数20例,案例解读,再不掌握就真的Out了
- 05-14TS,TypeScript,Windows环境下构建环境,安装、编译且运行
- 05-14TypeScript 也能开发AI应用了!
- 05-14搞懂 TypeScript 装饰器
- 05-14前端小哥哥:如何使用typescript开发实战项目?
- 05-14在 React 项目中,一般怎么处理错误?
- 05-14react19 常用状态管理
- 05-14Vue3开发极简入门(2):TypeScript定义对象类型
- 05-14C#与TypeScript语法深度对比
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)