Alangy's Blog
这个人很懒,什么都没有写
Toggle navigation
Alangy's Blog
首页
LeetCode刷题记录
开发
关于我
文章归档
标签
三个数的最大乘积
2023-03-18 21:06:01
56
0
0
admin
给你一个整型数组 nums,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 https://leetcode.cn/problems/maximum-product-of-three-numbers/ 分类讨论:三个正数|一个正数两个负数|两个正数一个负数|整个数组没有正数。 * 三个正数:排序后最大的三个; * 一个正数两个负数:最小的两个负数*最大的正数; * 没有正数:最大的三个数; * 两正一负:如果只有这三个数,则就是最大三个数,如果还有一个正数或者负数,都能凑出更大的正数,因此不考虑。 因此,需要找出最大的三个数和最小的两个数。 寻找方法:一次扫描,然后暴力记录。 ```c++ int min1=INT_MAX, min2=INT_MAX; int max1=INT_MIN, max2=INT_MIN, max3=INT_MIN; for(int num:nums){ //先更新最小值 if(num<min1){ min2=min1; min1=num; } else if(num<min2){ min2=num; } //更新最大值 if(num>max1){ max3=max2; max2=max1; max1=num; } else if(num>max2){ max3=max2; max2=num; } else if(num>max3){ max3=num; } } return max(max1*max2*max3, min1*min2*max1); ```
上一篇:
如何从40亿整数中找到不存在的一个
下一篇:
滑动窗口-双指针类型题目
0
likes
56
Weibo
Wechat
Tencent Weibo
QQ Zone
RenRen
Submit
Sign in
to leave a comment.
No Leanote account?
Sign up now.
0
comments
More...
Table of content
No Leanote account? Sign up now.