java - 计算 10 个用户输入整数的数组中出现次数最少的数

标签 java arrays counter

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/

相关文章:

JavaFX TextFlow - 空文本节点不显示空(从相邻文本中窃取字符)

java - 如何在java程序中从access数据库中检索整数列的最大值?

c - memset() 未将值设置为 1

arrays - 如何删除 []byte 类型的字节

javascript - 简单的 JavaScript 计数器函数

java - Chat Application,如何存储聊天记录?

java - Ehcache 与 DB 持久化设计

arrays - 我需要有关Perl中文件访问和修改的帮助

javascript - 当您点击某个滚动点时的 animateNumber | jQuery

javascript - $ 不是 Drupal 上的函数错误