题解 | #农场牛群众数#

农场牛群众数

https://www.nowcoder.com/practice/de4e4039a45247579ffeef81ccf44266?tpId=354&tqId=10595468&ru=/exam/oj&qru=/ta/interview-202-top/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D354

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param nums int整型一维数组
     * @return int整型一维数组
     */
    public int[] findMode (int[] nums) {
        // write code here
       int[] result = new int[nums.length];
        
        Map<Integer, Integer> countMap = new HashMap<>();
        
        int maxCount = 0;
        int majority = nums[0];
        
        for (int i = 0; i < nums.length; i++) {
            int num = nums[i];
            countMap.put(num, countMap.getOrDefault(num, 0) + 1);
            if (countMap.get(num) > maxCount || (countMap.get(num) == maxCount && num > majority)) {
                maxCount = countMap.get(num);
                majority = num;
            }
            result[i] = majority;
        }
        
        return result;
    }
}

知识点:

  1. HashMap:用于存储每个编号的牛出现的次数。
  2. 循环遍历数组:遍历输入的牛编号数组,统计每个编号出现的次数,并更新最大次数和众数。
  3. getOrDefault 方法:用于获取 Map 中键对应的值,如果键不存在,则返回默认值。
  4. 数组操作:将每次的众数添加到结果数组中。

解题思路:

使用一个 HashMap 来记录每个编号出现的次数。我们遍历输入数组,对于每个编号,将其出现次数记录在 countMap 中,并同时更新最大次数和众数。最后,将每次的众数添加到结果数组中。

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
沉淀一会:1.同学你面试评价不错,概率很大,请耐心等待; 2.你的排名比较靠前,不要担心,耐心等待; 3.问题不大,正在审批,不要着急签其他公司,等等我们! 4.预计9月中下旬,安心过节; 5.下周会有结果,请耐心等待下; 6.可能国庆节前后,一有结果我马上通知你; 7.预计10月中旬,再坚持一下; 8.正在走流程,就这两天了; 9.同学,结果我也不知道,你如果查到了也告诉我一声; 10.同学你出线不明朗,建议签其他公司保底! 11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
在评审的大师兄很完美:像这种一般就是部门不匹配 转移至其他部门然后挂掉 我就是这样被挂了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务