LeetCode in Kotlin

1679. Max Number of K-Sum Pairs

Medium

You are given an integer array nums and an integer k.

In one operation, you can pick two numbers from the array whose sum equals k and remove them from the array.

Return the maximum number of operations you can perform on the array.

Example 1:

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

Output: 2

Explanation: Starting with nums = [1,2,3,4]:

There are no more pairs that sum up to 5, hence a total of 2 operations.

Example 2:

Input: nums = [3,1,3,4,3], k = 6

Output: 1

Explanation: Starting with nums = [3,1,3,4,3]:

There are no more pairs that sum up to 6, hence a total of 1 operation.

Constraints:

Solution

class Solution {
    fun maxOperations(nums: IntArray, k: Int): Int {
        nums.sort()
        var start = 0
        var end = nums.size - 1
        var count = 0
        while (start < end) {
            val sum = nums[start] + nums[end]
            if (sum == k) {
                count++
                start++
                end--
            } else if (sum < k) {
                start++
            } else {
                end--
            }
        }
        return count
    }
}