LeastFrequent - 从 System.in 输入的 10 个整数列表中输出出现频率最低的整数及其出现次数。如果列表中的多个整数出现频率最低,则输出出现频率最低的任何整数。将您的类命名为 LeastFrequency。您可以假设所有 10 个整数都在 -100 到 100 范围内(包括 -100 和 100)。
import java.util.*;
public class LeastFrequent
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
int[] arr = new int[10];
int[] hold = new int[300];
int x = 0;
int count = 0;
int a = 1;
int least = 0;
System.out.print("numbers: ");
//adds 10 numbers to an array and counts occurrence
for(int i=0;i<arr.length;i++)
{
arr[i] = scan.nextInt();
hold[arr[i]]++;
}
for(int i=0;i<hold.length;i++)
{
if(hold[i] > 0)
{
}
}
System.out.println("least frequent: " + count + " occurs " + arr[count] + " times");
}
}
我让它向用户询问 10 个整数并将其放入数组中。 我还让它计算输入数字的出现次数并将其存储在另一个数组中。 我一直在寻找最不常见的一个。 我知道我需要再次扫描第二个数组,但我不知道如何。 关于如何比较第二个数组的元素值同时跳过等于 0 的值有什么想法吗?
最佳答案
首先,以下内容不太正确:
hold[arr[i]]++
如果我输入-1
会发生什么?
为了找到最少出现的元素,您需要找到 hold
中大于零的最小值。当您迭代 hold
时,您可以跟踪迄今为止看到的最小此类值及其索引。
最后,解决该问题的另一种方法是对数组进行排序。一旦执行此操作,相等的值就会彼此相邻。这简化了重复次数的计数。
关于java - 计算 10 个用户输入整数的数组中出现次数最少的数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13571106/