题解 | #牛的体重统计# 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-08 13:48
门头沟学院 C++
点赞 评论 收藏
分享
人力小鱼姐:实习经历没有什么含金量,咖啡店员迎宾这种就别写了,其他两段包装一下 想找人力相关的话,总结一下个人优势,结合校园经历里有相关性的部分,加一段自我评价
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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