Java 题解 | #农场牛类别匹配#
农场牛类别匹配
https://www.nowcoder.com/practice/270db1e1d65b4366a49a517ec7822912
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param breeds int整型一维数组
* @param target_sum int整型
* @return int整型
*/
public int countMatchingPairs (int[] breeds, int target_sum) {
// write code here
HashMap<Integer, Integer> counts = new
HashMap<>(); // 哈希表,存储每个元素的出现次数
int matchingPairs = 0; // 匹配对的个数
for (int i = 0; i < breeds.length; ++i) {
int breed = breeds[i];
int diff = target_sum - breed; // 计算目标值与该元素的差值
if (counts.containsKey(diff)) {
matchingPairs += counts.get(diff); // 更新匹配对的个数
}
counts.put(breed, counts.getOrDefault(breed,
0) + 1); // 存储当前元素的出现次数
}
return matchingPairs;
}
}
使用的是Java语言。
该题考察的知识点是哈希表的使用和元素统计。
- 创建一个HashMap对象counts用于存储每个元素的出现次数,并初始化匹配对的个数matchingPairs为0。
- 使用for循环遍历给定的数组breeds。对于数组中的每个元素breed,计算目标值与该元素的差值diff。
- 如果counts哈希表中存在键为diff的元素,则将该元素的值加到matchingPairs中,表示找到了一对匹配的元素。
- 更新counts哈希表中键为breed的元素的值,用于记录当前元素的出现次数。如果counts哈希表中不存在键为breed的元素,使用getOrDefault方法获取默认值0,并将其加1。
- 遍历结束后,返回匹配对的个数matchingPairs。

360集团公司氛围 407人发布