問題は次のとおりです。
整数の配列で最も頻繁に発生する要素を返すモードと呼ばれるメソッドを作成します。配列には少なくとも 1 つの要素があり、配列内のすべての要素が 0 から 100 までの値を持つとします。低い値を選択して同点を解消します。
たとえば、渡された配列に値 {27, 15, 15, 11, 27} が含まれている場合、メソッドは 15 を返す必要があります。この問題を解決する方法。)
以下は、単一要素の配列を除いてほとんど機能する私のコードです
public static int mode(int[] n)
{
Arrays.sort(n);
int count2 = 0;
int count1 = 0;
int pupular1 =0;
int popular2 =0;
for (int i = 0; i < n.length; i++)
{
pupular1 = n[i];
count1 = 0; //see edit
for (int j = i + 1; j < n.length; j++)
{
if (pupular1 == n[j]) count1++;
}
if (count1 > count2)
{
popular2 = pupular1;
count2 = count1;
}
else if(count1 == count2)
{
popular2 = Math.min(popular2, pupular1);
}
}
return popular2;
}
編集:ついにそれを理解しました。すべてが動作count1 = 0;
するようになりましたcount1 = 1;
!