#Codingexercise
Absolute Difference Between Maximum and Minimum K Elements
You are given an integer array nums and an integer k.
Find the absolute difference between:
the sum of the k largest elements in the array; and
the sum of the k smallest elements in the array.
Return an integer denoting this difference.
Example 1:
Input: nums = [5,2,2,4], k = 2
Output: 5
Explanation:
The k = 2 largest elements are 4 and 5. Their sum is 4 + 5 = 9.
The k = 2 smallest elements are 2 and 2. Their sum is 2 + 2 = 4.
The absolute difference is abs(9 - 4) = 5.
Example 2:
Input: nums = [100], k = 1
Output: 0
Explanation:
The largest element is 100.
The smallest element is 100.
The absolute difference is abs(100 - 100) = 0.
Constraints:
1 <= n == nums.length <= 100
1 <= nums[i] <= 100
1 <= k <= n
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
class Solution {
public int absDifference(int[] nums, int k) {
int[] sortedNums = IntStream.of(nums)
.boxed()
.sorted(Comparator.reverseOrder())
.mapToInt(Integer::intValue)
.toArray();
long max = 0;
long min = 0;
for (int i = 0; i < k; i++) {
max += (long) sortedNums[i];
}
for (int i = nums.length - 1; i >= nums.length - k; i--) {
min += (long) sortedNums[i];
}
return (int) Math.abs(max - min);
}
}
994 / 994 testcases passed
No comments:
Post a Comment