题目描述:
给定两个长度相等的数组a和b,它们的乘积和为数组中所有的a[i] * b[i]之和,其中0 <= i < a.length。
比如a = [1,2,3,4],b = [5,2,3,1]时,它们的乘积和为15 + 22 + 33 + 41 = 22
现有两个长度都为n的数组nums1和nums2,你可以以任意顺序排序nums1,请返回它们的最小乘积和。
示例 1:
输入: nums1 = [5,3,4,2], nums2 = [4,2,2,5]
输出: 40
解释: 将 num1 重新排列为 [3,5,4,2] 后,可由 [3,5,4,2] 和 [4,2,2,5] 得到最小乘积和 34 + 52 + 42 + 25 = 40。
示例 2:
输入: nums1 = [2,1,4,5,7], nums2 = [3,2,4,8,6]
输出: 65
解释: 将 num1 重新排列为 [5,7,4,1,2] 后,可由 [5,7,4,1,2] 和 [3,2,4,8,6] 得到最小乘积和 53 + 72 + 44 + 18 + 2*6 = 65。
提示:
n == nums1.length == nums2.length
1 <= n <= 105
1 <= nums1[i], nums2[i] <= 100
方法1:
主要思路:解题链接汇总
(1)相同周长下,正方形的面积大于长方形,思路一致;
(2)相同和,差距越大的两个数字,积越小;
class Solution {