K 和数对的最大数目

Bernie


Bernie
1679.K 和数对的最大数目
思路:
先排序,然后前后双指针判断,如果两个指针的和大于 k,则右指针向左移动,如果两个指针的和小于 k,则左指针向右移动,如果两个指针的和等于 k,则左指针向右移动,右指针向左移动,然后结果+1,最后返回结果即可。
typescript 解法
function maxOperations(nums: number[], k: number): number {
nums.sort((a, b) => a - b);
let left = 0;
let right = nums.length - 1;
let count: number = 0;
while (left < right) {
const sum = nums[left] + nums[right];
if (sum > k) {
right--;
} else if (sum < k) {
left++;
} else {
count++;
right--;
left++;
}
}
return count;
}
go 解法
func maxOperations(nums []int, k int) int {
sort.Ints(nums)
left := 0
right := len(nums) - 1
count := 0
for left < right {
sum := nums[left] + nums[right]
if sum > k {
right --
} else if sum < k {
left ++
} else {
count ++
left ++
right --
}
}
return count
}