当前位置: 首页> 娱乐> 明星 > 武汉公司注册代办一般多少钱_网页设计模板图片简单_无锡百度快照优化排名_seo优化排名工具

武汉公司注册代办一般多少钱_网页设计模板图片简单_无锡百度快照优化排名_seo优化排名工具

时间:2025/7/12 11:56:46来源:https://blog.csdn.net/XiaoyaoCarter/article/details/147470977 浏览次数:0次
武汉公司注册代办一般多少钱_网页设计模板图片简单_无锡百度快照优化排名_seo优化排名工具

1679. K 和数对的最大数目 - 力扣(LeetCode)

题目

给你一个整数数组 nums 和一个整数 k 。

每一步操作中,你需要从数组中选出和为 k 的两个整数,并将它们移出数组。

返回你可以对数组执行的最大操作数。

示例 1:

输入:nums = [1,2,3,4], k = 5
输出:2
解释:开始时 nums = [1,2,3,4]:
- 移出 1 和 4 ,之后 nums = [2,3]
- 移出 2 和 3 ,之后 nums = []
不再有和为 5 的数对,因此最多执行 2 次操作。

示例 2:

输入:nums = [3,1,3,4,3], k = 6
输出:1
解释:开始时 nums = [3,1,3,4,3]:
- 移出前两个 3 ,之后nums = [1,4,3]
不再有和为 6 的数对,因此最多执行 1 次操作。

提示:

  • 1 <= nums.length <= 105
  • 1 <= nums[i] <= 109
  • 1 <= k <= 109

思路

  1. 先将数组排序,然后再左右匹配。

代码实现

class Solution {
public:int maxOperations(vector<int>& nums, int k) {int l = 0, r = nums.size()-1, cnt = 0, sum;if (r < 1)return 0;sort(nums.begin(), nums.end());while (l < r) {sum = nums[l]+nums[r];if (sum == k) {l++;r--;cnt++;} else if(sum < k) l++;else r--;}return cnt;}
};

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(1)。

其他题解

  • 还有一种方法也挺有意思的,就是利用哈希表,先将nums中的数字情况存入哈希表,然后再遍历一遍数组,每次遇到x时就找哈希表key为k-x是否还可以匹配,可以就将map[k-x]的value减一,然后完成匹配,最后结果除以2即可(因为对应的匹配肯定是成对存在的,所以会重复一次)。
  • 这个时空间复杂度都是O(n)的,所以就不复现了。
关键字:武汉公司注册代办一般多少钱_网页设计模板图片简单_无锡百度快照优化排名_seo优化排名工具

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: