本文主要是介绍LeetCode75——Day13,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、题目
- 二、题解
一、题目
1679. Max Number of K-Sum Pairs
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]:
- Remove numbers 1 and 4, then nums = [2,3]
- Remove numbers 2 and 3, then nums = []
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]:
- Remove the first two 3’s, then nums = [1,4,3]
There are no more pairs that sum up to 6, hence a total of 1 operation.
Constraints:
1 <= nums.length <= 105
1 <= nums[i] <= 109
1 <= k <= 109
二、题解
排序+双指针
class Solution {
public:int maxOperations(vector<int>& nums, int k) {int n = nums.size();sort(nums.begin(),nums.end());int i = 0,j = n - 1,res = 0;while(i < j){if(nums[i] + nums[j] == k){res++;i++;j--;}else if(nums[i] + nums[j] > k) j--;else if(nums[i] + nums[j] < k) i++;}return res;}
};
这篇关于LeetCode75——Day13的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!