1913. 两个数对之间的最大乘积差 - 力扣(LeetCode)


这个问题的目标是从数组 nums 中选出四个不同的下标 w、x、y 和 z,使得两个数对 (nums[w], nums[x]) 和 (nums[y], nums[z]) 之间的乘积差最大,即:
乘积差=(nums[w]×nums[x])−(nums[y]×nums[z])
为了最大化这个乘积差,我们可以从以下几点入手:
-
我们希望两个数对的乘积差尽可能大。为了达到这个目标,显然我们需要两个数对的乘积分别尽量大和尽量小。最大化乘积差意味着要找到一个最大乘积对和一个最小乘积对。
-
数组中的最大值和最小值会产生极大的乘积,因此,我们可以先对数组进行排序,寻找最大值和最小值,然后计算不同数对的乘积。
解题思路
-
排序:对数组
nums进行升序排序,这样我们可以容易地访问最小和最大的元素。

最低0.47元/天 解锁文章
167

被折叠的 条评论
为什么被折叠?



