题解 | #牛的体重统计# java

牛的体重统计

https://www.nowcoder.com/practice/15276ab238c9418d852054673379e7bf

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param weightsA int整型一维数组
     * @param weightsB int整型一维数组
     * @return int整型
     */
    public int findMode (int[] weightsA, int[] weightsB) {
        // write code here
        Map<Integer, Integer> wei = new HashMap<>();

        for (int v : weightsA) {
            if (wei.containsKey(v)) {
                wei.put(v, wei.get(v) + 1);
            } else {
                wei.put(v, 1);
            }
        }

        for (int v : weightsB) {
            if (wei.containsKey(v)) {
                wei.put(v, wei.get(v) + 1);
            } else {
                wei.put(v, 1);
            }
        }

        int ans = -1;
        int aans = 0;

        for (Map.Entry<Integer, Integer> entry : wei.entrySet()) {
            int key = entry.getKey();
            int value = entry.getValue();

            if (value >= ans) {
                if (key > aans) {
                    ans = value;
                    aans = key;
                }
            }
        }

        return aans;
    }
}

使用的是Java语言。

该题考察的知识点主要有:

  • 使用HashMap来统计元素出现次数。
  • 遍历数组并更新HashMap中的值。
  • 遍历HashMap找到出现次数最多且值最大的元素。

代码的文字解释如下:

  1. 遍历数组weightsA,对于每个元素v,判断是否已存在于wei中。如果存在,通过wei.get(v) + 1获取当前元素出现的次数,并使用wei.put(v, ...)将更新后的次数存入wei。如果不存在,表示此元素第一次出现,将其加入wei并设置出现次数为1。
  2. 同样地,遍历数组weightsB,对于每个元素v,判断是否已存在于wei中。如果存在,通过wei.get(v) + 1获取当前元素出现的次数,并使用wei.put(v, ...)将更新后的次数存入wei。如果不存在,表示此元素在之前的遍历中未出现过,将其加入wei并设置出现次数为1。
  3. 初始化变量ans为-1,用于记录出现次数最多的元素的次数。
  4. 初始化变量aans为0,用于记录出现次数最多且值最大的元素。
  5. 遍历wei,对于每个键值对entry:获取键key和对应的值value。如果当前元素的出现次数value大于等于ans,则更新ans和aans:如果当前元素的值key大于aans,则更新ans为value,aans为key。
  6. 遍历结束后,返回aans作为结果,即出现次数最多且值最大的元素。
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 13:05
TMD找工作本来就烦,这东西什么素质啊😡
Beeee0927:hr是超雄了,不过也是有道理的
点赞 评论 收藏
分享
酷酷我灵儿帅:这去不去和线不线下面说实话没啥关系
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务