LeetCode_628_数组_三个数的最大乘积
Posted 軒邈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode_628_数组_三个数的最大乘积相关的知识,希望对你有一定的参考价值。
原创:
/*
解题思路:
1.进行排序,由414题目第三大的数得到启示,使用冒泡排序,降序;
2.然后前三个值最大相乘。
解决提交超时问题:
1.冒泡排序更换成快排;
*/
int iQsortVal(const void *a, const void *b)
return (*(int*)b - *(int*)a);
int maximumProduct(int* nums, int numsSize)
// int iTampVal; /* 排序临时变量 */
// for(int i = 0; i < numsSize; i ++)
//
// for(int j = i + 1; j < numsSize; j ++)
//
// if(nums[i] < nums[j])
//
// iTampVal = nums[i];
// nums[i] = nums[j];
// nums[j] = iTampVal;
//
//
//
qsort(nums, numsSize, sizeof(nums[0]), iQsortVal);
if(numsSize <= 3 && numsSize > 0)
switch(numsSize)
case 1: return nums[0]; break;
case 2: return nums[0]*nums[1]; break;
case 3: return nums[0]*nums[1]*nums[2]; break;
default: break;
else
return (int)fmax(nums[0]*nums[1]*nums[2], nums[numsSize - 2]*nums[numsSize - 1]*nums[0]);
return 0;
理解:
关于快速排序(qsort)请点击链接: 快排
总结:
只有不停的去熟练,才可以得心应手!
以上是关于LeetCode_628_数组_三个数的最大乘积的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 628. Maximum Product of Three Numbers三个数的最大乘积 (C++)