gpt4 book ai didi

java - 如何编写计算数组众数的方法?

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

我正在尝试编写一种方法来计算数组的众数。我试图只用两个数组来编写它。由于某种原因,我得到的输出是数组的大小 --> 100。到目前为止,这就是我所拥有的:

public static int mode(int[ ] grades) {
int mode[ ] = new int [101];
int value = 0;

for (int i = 0; i < value; i++)
mode[grades[ i ] ]++; //this part really confuses me and I don't know how to interpret this.
//can someone please explain this to me too. I know this is the only...
int max = 0; //...way to get it with 2 arrays.

for(int i = 0; i < 101; i++) {
max = mode[ i ];
value = i;
}

return value;
}

最佳答案

成绩可以在 [0,100] 范围内,即 101 个数字(因此大小为 101)。

for (int i = 0; i < value; i++)
mode[grades[i]]++;

grades[i] 获取插槽 i 处的数字。假设是 85。这给我们带来:mode[85]++,它会增加我们看到等级 85 的次数。

完成后,我们迭代 mode 并查看哪个槽具有最高值,该值与模式相对应,因为 mode 只是跟踪我们遇到每个分数的次数。

但是,第二部分是不正确的,如果当前元素是> max,你只想更新maxvalue,即:

int max = 0;           
for(int i = 0; i< 101; i++)
{
if (mode[i] > max)
{
max = mode[i];
value = i;
}
}

关于java - 如何编写计算数组众数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20438792/

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