【发布时间】:2012-11-17 02:32:03
【问题描述】:
我被分配了一个家庭作业的编程问题,我处于静止状态。我今天已经搜索了几个小时试图找到答案,似乎从来没有在这里被问过。我基本上需要找到数组模式的反转。这是我被要求找到解决方案的问题:
LeastFrequent - 输出出现频率最低的整数 其出现次数来自输入的 10 个整数列表 系统输入如果列表中的多个整数出现频率最低, 输出出现频率最低的任何整数。为你的班级命名 最少。您可以假设所有 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");
}
}
基本上我想如果我能找到该模式,我可以反转该算法并找到最不常见的,但这不起作用,因为它总是读取为零。
有人有什么想法吗?
请帮忙!!
【问题讨论】:
-
你可以使用 Map 结构还是只使用普通数组?