如何编写计算数组模式的方法?

时间:2013-12-07 07:14:55

标签: java arrays loops for-loop mode

我正在尝试编写一种计算数组模式的方法。我只想用两个数组来编写它。出于某种原因,我得到的输出是数组的大小 - > 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;
}

1 个答案:

答案 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只是跟踪我们遇到每个得分的次数

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

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