大家好,我是开车的阿Q,自动驾驶的时代已经到来,没时间解释了,快和阿Q一起上车。作为自动驾驶系统工程师,必须要有最好的C++基础,让我们来一起刷题吧。
题目考察的知识点
本题考察的是在一个整数数组中查找满足条件的两两匹配的问题。
题目解答方法的文字分析
我们可以使用哈希表来解决这个问题。遍历数组中的每个元素,对于每个元素,我们计算目标值与该元素的差值,并查看这个差值是否在哈希表中存在。如果存在,则说明可以匹配,同时将哈希表中的该差值的出现次数加1。如果不存在,则将该元素存储在哈希表中,并将其出现次数设置为1。最后,我们统计匹配对的个数。
本题解析所用的编程语言 (C++)
C++
完整且正确的编程代码
class Solution {
public:
int countMatchingPairs(vector<int>& breeds, int target_sum) {
unordered_map<int, int> counts; // 哈希表,存储每个元素的出现次数
int matchingPairs = 0; // 匹配对的个数
for (int i = 0; i < breeds.size(); ++i) {
int breed = breeds[i];
int diff = target_sum - breed; // 计算目标值与该元素的差值
if (counts.count(diff) > 0) {
matchingPairs += counts[diff]; // 更新匹配对的个数
}
counts[breed]++; // 存储当前元素的出现次数
}
return matchingPairs;
}
};
您的关注、点赞、收藏就是我创作的动力,三连支持阿Q!

京公网安备 11010502036488号