这是拼多多的一道笔试题
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 。
我们分析一下:有两种情况可能是最大结果。
1>两个负数与与一个正数相乘。
2>3个全为最大正数。
想法是:我们遍历一遍数组,每次进行比较把数组中最大的三个数和最小的两个数取出来,输出最大乘积。
最大乘积
最新推荐文章于 2020-07-29 18:41:24 发布
这是拼多多的一道笔试题
给定一个无序数组,包含正数、负数和0,要求从中找出3个数的乘积,使得乘积最大,要求时间复杂度:O(n),空间复杂度:O(1) 。
我们分析一下:有两种情况可能是最大结果。
1>两个负数与与一个正数相乘。
2>3个全为最大正数。
想法是:我们遍历一遍数组,每次进行比较把数组中最大的三个数和最小的两个数取出来,输出最大乘积。