【发布时间】:2012-02-25 23:10:39
【问题描述】:
我有一个任务,我需要找到一个数组的模式。这意味着我正在寻找最常见的 int 。我已经完成了,但是任务还说如果有两种相同的模式,我应该返回最小的 int 例如 {1,1,1,2,2,2} 应该给 1 (就像在我的文件中我使用该数组,它给出了 2)
public class theMode
{
public theMode()
{
int[] testingArray = new int[] {1,1,1,2,2,2,4};
int mode=findMode(testingArray);
System.out.println(mode);
}
public int findMode(int[] testingArray)
{
int modeWeAreLookingFor = 0;
int frequencyOfMode = 0;
for (int i = 0; i < testingArray.length; i++)
{
int currentIndexOfArray = testingArray[i];
int frequencyOfEachInArray = howMany(testingArray,currentIndexOfArray);
if (frequencyOfEachInArray > frequencyOfMode)
{
modeWeAreLookingFor = currentIndexOfArray;
frequencyOfMode = modeWeAreLookingFor;
}
}
return modeWeAreLookingFor;
}
public int howMany(int[] testingArray, int c)
{
int howManyOfThisInt=0;
for(int i=0; i < testingArray.length;i++)
{
if(testingArray[i]==c){
howManyOfThisInt++;
}
}
return howManyOfThisInt;
}
public static void main(String[] args)
{
new theMode();
}
}
如您所见,我的算法返回最后找到的模式或我应该如何解释它。
【问题讨论】:
标签: java