私は宿題のプログラミングの問題を割り当てられました、そして私は立ち止まっています。私は今日何時間も答えを見つけようとして検索しました、そしてそれはここで決して尋ねられなかったようです。基本的に、配列のモードの逆を見つける必要があります。これが私が解決策を見つけるために尋ねられた質問です:
LeastFrequent-System.inから入力された10個の整数のリストから、発生回数が最も少ない整数を出力します。リスト内の複数の整数の出現頻度が最も低い場合は、出現頻度の最も低い整数を出力します。クラスにLeastFrequentという名前を付けます。10個の整数はすべて-100から100までの範囲にあると想定できます。
これが私がこれまでに持っているコードです:
package leastfrequent;
import java.util.*;
public class LeastFrequent
{
private static int[] arr = new int[10];
private static int minValue;
private static int minCount;
public static void leastCommon()
{
for(int i = 0; i < arr.length; i++)
{
int count = 0;
for(int j = 0; j < arr.length; j++)
{
if(arr[j] == arr[i])
{
count++;
}
}
if(count > minCount)
{
minCount = count;
minValue = arr[i];
}
}
}
public static void main(String[] args)
{
Scanner stdin = new Scanner(System.in);
System.out.print("numbers: ");
for(int i = 0; i < arr.length; i++)
{
arr[i] = stdin.nextInt();
}
Arrays.sort(arr);
leastCommon();
System.out.println("least frequent: " + minValue + " occurs " + minCount + " times");
}
}
基本的に、モードを見つけることができれば、そのアルゴリズムを逆にして最も一般的でないものを見つけることができると考えましたが、常にゼロを読み取るため、それは機能しません。
誰かアイデアはありますか?
助けてください!!