[leetcode] 1679. Max Number of K-Sum Pairs

网友投稿 203 2022-09-15

[leetcode] 1679. Max Number of K-Sum Pairs

Description

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 = 5Output: 2Explanation: 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 = 6Output: 1Explanation: 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 <= 1051 <= nums[i] <= 1091 <= k <= 109

分析

题目的意思是:给定一个数组,每次移除两个数和为k的数,求出移除的步数。这道题思路也很直接,用字典d来统计数的频率,然后根据字典中保存的数来判断两数和为k的对数,这样的话就比较容易的求出来了,找出两数和为k的对数就是最终的结果了。

代码

class Solution: def maxOperations(self, nums: List[int], k: int) -> int: d=defaultdict(int) res=0 for num in nums: remain=k-num if(remain in d and d[remain]>0): d[remain]-=1 res+=1 else: d[num]+=1 return res

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[leetcode] 910. Smallest Range II
下一篇:数字小票进超市、区块链助溯源,零售业数字化加速!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~