LeetCode in Kotlin

2341. Maximum Number of Pairs in Array

Easy

You are given a 0-indexed integer array nums. In one operation, you may do the following:

The operation is done on nums as many times as possible.

Return a 0-indexed integer array answer of size 2 where answer[0] is the number of pairs that are formed and answer[1] is the number of leftover integers in nums after doing the operation as many times as possible.

Example 1:

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

Output: [3,1]

Explanation:

Form a pair with nums[0] and nums[3] and remove them from nums. Now, nums = [3,2,3,2,2].

Form a pair with nums[0] and nums[2] and remove them from nums. Now, nums = [2,2,2].

Form a pair with nums[0] and nums[1] and remove them from nums. Now, nums = [2].

No more pairs can be formed. A total of 3 pairs have been formed, and there is 1 number leftover in nums.

Example 2:

Input: nums = [1,1]

Output: [1,0]

Explanation: Form a pair with nums[0] and nums[1] and remove them from nums. Now, nums = [].

No more pairs can be formed. A total of 1 pair has been formed, and there are 0 numbers leftover in nums.

Example 3:

Input: nums = [0]

Output: [0,1]

Explanation: No pairs can be formed, and there is 1 number leftover in nums.

Constraints:

Solution

class Solution {
    fun numberOfPairs(nums: IntArray): IntArray {
        nums.sort()
        var pairs = 0
        for (i in nums.indices) {
            if (i > 0 && nums[i] == nums[i - 1]) {
                nums[i] = -1
                nums[i - 1] = -1
                pairs++
            }
        }
        return intArrayOf(pairs, nums.size - 2 * pairs)
    }
}