[leetcode] 628. Maximum Product of Three Numbers

网友投稿 904 2022-10-02

[leetcode] 628. Maximum Product of Three Numbers

[leetcode] 628. Maximum Product of Three Numbers

Description

Given an integer array, find three numbers whose product is maximum and output the maximum product.

Example 1:

Input: [1,2,3]Output: 6

Example 2:

Input: [1,2,3,4]Output: 24

Note:

The length of the given array will be in range [3,104] and all elements are in the range [-1000, 1000].Multiplication of any three numbers in the input won’t exceed the range of 32-bit signed integer.

分析

题目的意思是:找出一个数组中三个数的乘积最大。

考虑正负数的情况。如果全都是正数相乘比较大,就取三个最大值相乘即可。如果负数的绝对值比较大,我们可以取绝对值最大的两个负数参与相乘,最后比较一下两种算法的乘积哪个大。

代码

class Solution {public: int maximumProduct(vector& nums) { sort(nums.begin(),nums.end()); int n=nums.size(); int sum=nums[0]*nums[1]*nums[n-1]; sum=max(sum,nums[n-1]*nums[n-2]*nums[n-3]); return sum; }};

参考文献

​​leetcode 628 Maximum Product of Three Numbers​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:小程序内容更新提示小红点如何实现?(小程序内容更新提醒怎么关闭)
下一篇:Spring Security实现HTTP认证
相关文章

 发表评论

暂时没有评论,来抢沙发吧~