题目描述
塔子哥拿到了一个长度为2n的数组,她希望把数组中的元素分成n个二元组:(xi,yi)。
题解
我们可以将问题转化为将排序后的数组分成两组,每组 n 个数字,分别作为 x 坐标和 y 坐标。注意,由于每个二元组内可以任意分配(即可以交换 x 和 y),问题等价于下面两种情况中的最优解:
- 【情况一】
- 直接将排序后数组的前 n 个数作为一组,后 n 个数作为另一组。
- 记排序后的数组为 s[0], s[1], …, s[2n–1]。
- 那么一组的范围为 s[n–1] – s[0],另一组的范围为 s[2n–1] – s[n]。
- 矩形面积为:
面积1 = (s[n–1] – s[0]) × (s[2n–1] – s[n])