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语言。

该题考察的知识点是哈希表的使用和元素统计。

  1. 创建一个HashMap对象counts用于存储每个元素的出现次数,并初始化匹配对的个数matchingPairs为0。
  2. 使用for循环遍历给定的数组breeds。对于数组中的每个元素breed,计算目标值与该元素的差值diff。
  3. 如果counts哈希表中存在键为diff的元素,则将该元素的值加到matchingPairs中,表示找到了一对匹配的元素。
  4. 更新counts哈希表中键为breed的元素的值,用于记录当前元素的出现次数。如果counts哈希表中不存在键为breed的元素,使用getOrDefault方法获取默认值0,并将其加1。
  5. 遍历结束后,返回匹配对的个数matchingPairs。
全部评论

相关推荐

感性的干饭人在线蹲牛友:🐮 应该是在嘉定这边叭,禾赛大楼挺好看的
点赞 评论 收藏
分享
牛客722552937号:新锐之星有点坑爹,特别是对男的
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务