3774. 最大和最小 K 个元素的绝对差
题目描述
给你一个整数数组 nums 和一个整数 k。
请计算以下两者的绝对差值:
- 数组中
k个 最大 元素的总和; - 数组中
k个 最小 元素的总和。
返回表示此差值的整数。
示例 1:
输入: nums = [5,2,2,4], k = 2
输出: 5
解释:
k = 2个最大的元素是 4 和 5。它们的总和是4 + 5 = 9。k = 2个最小的元素是 2 和 2。它们的总和是2 + 2 = 4。- 绝对差值是
abs(9 - 4) = 5。
示例 2:
输入: nums = [100], k = 1
输出: 0
解释:
- 最大的元素是 100。
- 最小的元素是 100。
- 绝对差值是
abs(100 - 100) = 0。
提示:
1 <= n == nums.length <= 1001 <= nums[i] <= 1001 <= k <= n
解法
方法一:排序
我们首先对数组 \(\textit{nums}\) 进行排序。然后计算数组中前 \(k\) 个元素的和以及后 \(k\) 个元素的和,最后返回两者的差值。
时间复杂度 \(O(n \times \log n)\),空间复杂度 \(O(\log n)\),其中 \(n\) 是数组 \(\textit{nums}\) 的长度。
1 2 3 4 | |
1 2 3 4 5 6 7 8 9 10 11 | |
1 2 3 4 5 6 7 8 9 10 11 12 | |
1 2 3 4 5 6 7 | |
1 2 3 4 5 6 7 8 | |