LeetCode in Kotlin

2740. Find the Value of the Partition

Medium

You are given a positive integer array nums.

Partition nums into two arrays, nums1 and nums2, such that:

The value of the partition is |max(nums1) - min(nums2)|.

Here, max(nums1) denotes the maximum element of the array nums1, and min(nums2) denotes the minimum element of the array nums2.

Return the integer denoting the value of such partition.

Example 1:

Input: nums = [1,3,2,4]

Output: 1

Explanation: We can partition the array nums into nums1 = [1,2] and nums2 = [3,4].

The value of the partition is |2 - 3| = 1.

It can be proven that 1 is the minimum value out of all partitions.

Example 2:

Input: nums = [100,1,10]

Output: 9

Explanation: We can partition the array nums into nums1 = [10] and nums2 = [100,1].

The value of the partition is |10 - 1| = 9.

It can be proven that 9 is the minimum value out of all partitions.

Constraints:

Solution

class Solution {
    fun findValueOfPartition(nums: IntArray): Int = nums
        .sortedDescending()
        .zipWithNext(Int::minus)
        .min()
}