- 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。
示例 1:
输入:nums = [1,2,3]
输出:6
示例 2:
输入:nums = [1,2,3,4]
输出:24
示例 3:
输入:nums = [-1,-2,-3]
输出:-6
提示:
3 <= nums.length <= 104
-1000 <= nums[i] <= 1000
- 排序后 如果存在负数相乘最大的情况则是两个最小负数和一个最大整数的乘积为最大值
程序代码
int cmp(int *a,int *b){
return *b-*a;
}
int maximumProduct(int* nums, int numsSize){
qsort(nums,numsSize,sizeof(int),cmp);
int a=nums[0]*nums[numsSize-1]*nums[numsSize-2];
int b=nums[0]*nums[1]*nums[2];
return a>b?a:b;
}