一、数组---三个数的最大乘积

给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积。

示例 1:

输入: [1,2,3]
输出: 6
示例 2:

输入: [1,2,3,4]
输出: 24
注意:

给定的整型数组长度范围是[3,104],数组中所有的元素范围是[-1000, 1000]。
输入的数组中任意三个数的乘积不会超出32位有符号整数的范围。

 1 class Solution {
 2 public:
 3     //三个数的最大乘积只可能是【前面连续的三个最大数】或者【第一个正数和最后两个负数】两种情况之一
 4     int maximumProduct(vector<int>& nums) {
 5         sort(nums.begin(),nums.end());
 6         int len=nums.size();
 7         int front=nums[0]*nums[1]*nums[len-1];
 8         int behind = nums[len-1]*nums[len-2]*nums[len-3];
 9         if(nums[1]<0 && front>behind) return front;
10         else return behind;
11     }
12 };

 

posted @ 2019-06-13 11:14  Austin_anheqiao  阅读(576)  评论(0编辑  收藏  举报