题解 | #农场牛群众数#

农场牛群众数

https://www.nowcoder.com/practice/de4e4039a45247579ffeef81ccf44266

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param nums int整型一维数组 
     * @return int整型一维数组
     */
  	//空间复杂度:O(n),其中n为nums.length
  	//时间复杂度: O(n),其中n为nums.length
	/**
	  整体思路:
		  用map记录各元素出现的次数,max记录当前众数,每次for循环map加入一个元素,如果当前众数比现在的元素出		现次数少,或者次数一样但是众数比当前元素小,则更新max,将max记录到res数组中返回.
	*/
    public int[] findMode (int[] nums) {
        // write code here
        HashMap<Integer , Integer> map = new HashMap<>();
        int max = nums[0];
        int len = nums.length;
        int[] res = new int[len];
        for (int i = 0; i < len; i++) {
            map.put(nums[i] , map.getOrDefault(nums[i] , 0) + 1);
            if(map.get(nums[i]) > map.get(max) || map.get(nums[i]) == map.get(max) && nums[i] > max)
                max = nums[i];
            res[i] = max;
        }
        return res;
    }
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 18:54
说等下个版本吧的发呆爱好者很贪睡:佬最后去了哪家呀
点赞 评论 收藏
分享
头像
11-09 17:30
门头沟学院 Java
TYUT太摆金星:我也是,好几个华为的社招找我了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务