我正在尝试编写一种计算数组模式的方法。我只想用两个数组来编写它。出于某种原因,我得到的输出是数组的大小 - > 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 :(得分:1)
成绩可以在[0,100]
范围内,即101个数字(因此大小为101)。
for (int i = 0; i < value; i++)
mode[grades[i]]++;
grades[i]
获取广告位i
的号码。让我们说85.这给了我们:
mode[85]++
,增加了我们看到85级的次数。
完成此操作后,我们遍历mode
并查看哪个广告位具有最高值,此值与该模式相对应,因为mode
只是跟踪我们遇到每个得分的次数
但是,第二部分不正确,您只想更新max
,value
如果当前元素为> max
,即:
int max = 0;
for(int i = 0; i< 101; i++)
{
if (mode[i] > max)
{
max = mode[i];
value = i;
}
}