温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何使用java求众数

发布时间:2022-01-17 14:49:57 阅读:498 作者:清风 栏目:大数据
Java开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要为大家展示了如何使用java求众数,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“如何使用java求众数”这篇文章吧。

给定一个大小为 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。
说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。
示例 1:

输入: [3,2,3]输出: [3]

示例 2:

输入: [1,1,1,3,3,2,2,2]输出: [1,2]

答案:

 1public List<Integer> majorityElement(int[] nums) { 2    List<Integer> res = new ArrayList<>(); 3    if (nums.length == 0) 4        return res; 5    int num1 = nums[0]; 6    int num2 = nums[0]; 7    int count1 = 1; 8    int count2 = 0; 910    for (int val : nums) {11        if (val == num1)12            count1++;13        else if (val == num2)14            count2++;15        else if (count1 == 0) {16            num1 = val;17            count1++;18        } else if (count2 == 0) {19            num2 = val;20            count2++;21        } else {22            count1--;23            count2--;24        }25    }26    count1 = 0;27    count2 = 0;28    for (int val : nums) {29        if (val == num1)30            count1++;31        else if (val == num2)32            count2++;33    }34    if (count1 > nums.length / 3)35        res.add(num1);36    if (count2 > nums.length / 3)37        res.add(num2);38    return res;39}

解析:

最简单的一种方式是通过HashMap存储,key存储数组的值,value计算出现的次数,这种写法比较简单就不在列出,我们来看上面这种写法,超过1/3,说明最多也只有2个,我们先用两个变量num1和num2来存储。注意这里的关键点在第一个循环语句,也就是10到25行,其实也很好理解,我们还可以参照之前的146,求众数的第一种解法,这里就不在详细介绍。

Java有哪些集合类

Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;3、Set集合:不可重复;4、Map映射:无序,键唯一,值不唯一。

以上就是关于“如何使用java求众数”的内容,如果该文章对您有所帮助并觉得写得不错,劳请分享给您的好友一起学习新知识,若想了解更多相关知识内容,请多多关注亿速云行业资讯频道。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/1010616/blog/4440298

AI

开发者交流群×