K 和数对的最大数目

给你一个整数数组 nums 和一个整数 k 。
每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。
返回你可以对数组执行的最大操作数。

  • 输入:nums = [1,2,3,4], k = 5
  • 输出:2
    解释:开始时 nums = [1,2,3,4]:
  • 移出 1 和 4 ,之后 nums = [2,3]
  • 移出 2 和 3 ,之后 nums = []
    不再有和为 5 的数对,因此最多执行 2 次操作。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var maxOperations = function(nums, k) {
nums.sort((a, b) => a - b)
let count = 0

let l = 0
let r = nums.length - 1
while (l < r) {
let num = nums[l] + nums[r]
if (num > k) {
r--
} else if (num < k) {
l++
} else {
count++
l++
r--
}
}

return count
};