leetcode力扣刷题打卡
题目:1679. K 和数对的最大数目
描述:给你一个整数数组 nums 和一个整数 k 。
每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。
返回你可以对数组执行的最大操作数。
思路:
1、先排序再双指针;
2、典型双指针算法;
原代码##
class Solution {
public:
int maxOperations(vector<int>& nums, int k) {
int n = nums.size();
sort(nums.begin(), nums.end());
int l = 0, r = n - 1;
int ans = 0;
while (l < r) {
int temp = nums[l] + nums[r];
if (temp == k) {
ans++;
l++;
r--;
}
else if (temp < k) {
l++;
} else {
r--;
}
}
return ans;
}
};