gpt4 book ai didi

java - 如何获得数组中整数的最大频率?

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:11 24 4
gpt4 key购买 nike

有人要求我在 codility 测试考试中编写一个程序,编写一个函数来检查数组 A 中整数的最大频率并返回值:例如:

A[0]: 10
A[1]: 7
A[2]: 10
A[3]: 10

将产生输出 10

class Solution {
public int solution(int[] A) {
// write your code in Java SE 8
int count = 1, tempCount;
int mostOften = A[0];
int temp = 0;
for (int iCounter = 0; iCounter < (A.length - 1); iCounter++)
{
temp = A[iCounter];
tempCount = 0;
for (int jCounter = 1; jCounter < A.length; jCounter++)
{
if (temp == A[jCounter])
tempCount++;
}
if (tempCount > count)
{
mostOften = temp;
count = tempCount;
}
}
return mostOften;
}
}

最佳答案

最简单的方法是流式传输数组并将其转换为频率图,按计数对其进行反向排序,然后获取第一个元素:

public int solution(int[] a) {
return Arrays.stream(a)
.boxed()
.collect(Collectors.groupingBy
(Function.identity(), Collectors.counting()))
.entrySet()
.stream()
.sorted(Map.Entry.<Integer, Long> comparingByValue().reversed())
.findFirst()
.map(Map.Entry::getKey)
.get();
}

关于java - 如何获得数组中整数的最大频率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39935645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com