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