题解 | #农场牛群众数#

农场牛群众数

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;
    }
}

全部评论

相关推荐

06-23 17:45
门头沟学院 Java
里面的项目啥的真的有用吗?&nbsp;这些人是割韭菜吗?
HellowordX:很简单,如果你有自己稳定的学习路线和获取知识的方式就没必要,如果你啥都不懂的小白或者里边有你感兴趣的知识,我觉得挺值,我也经常为知识付费,因为时间精力有限,很多东西我不可能自己重复造轮子
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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