当前位置: 首页 > 知识库问答 >
问题:

计算10个用户输入整数数组中出现的最小值

卫子平
2023-03-14

最少频率 - 从 System.in 输入的 10 个整数列表中输出出现频率最低的整数及其出现计数。如果列表中的多个整数出现频率最低,则输出任何出现频率最低的整数。将类命名为“最少频率”。您可以假定所有 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的值的同时比较第二个数组的元素值的任何想法?

共有1个答案

汲睿
2023-03-14

首先,以下内容不太正确:

hold[arr[i]]++

如果我输入-1会发生什么?

至于寻找最少出现的元素,您需要在hold中找到大于零的最小值。当您迭代hold时,您可以跟踪迄今为止看到的最小值及其索引。

最后,解决这个问题的另一种方法是对数组进行排序。一旦这样做,相等的值就会彼此相邻。这简化了重复计数。

 类似资料:
  • 我正在尝试以下练习来提高我的在线技能,我遇到了以下问题。 这是一个演示任务。 编写一个函数:class Solution{public int Solutions(int[]A);},给定一个包含N个整数的数组A,返回A中没有出现的最小正整数(大于0)。 举个例子, 给定 A = [1, 3, 6, 4, 1, 2],函数应返回 5。给定 A = [1, 2, 3],函数应返回 4。给定 A =

  • 我有一个Java作业,我需要读入一个字符,然后计算该字符在数组中出现的次数。这是我目前所掌握的。

  • 解决了 我想问用户他想输入多少个整数,然后读取所有数字,同时跟踪他们输入的最大和最小数字。然后打印最大和最小数字。 我正在考虑将最大值和最小值设置为第一个输入的数字,然后在for循环中读取下一个数字,并使用更大/更小的数字更改最大值和最低值。但是,它只打印用户输入的第一个数字。有人能帮我吗?非常感谢。 代码:

  • 我想知道是否可以在一个MySQL表中计算pet列中包含值Cat的行数,并在pet列中包含值Dog的同一个表中计算行数。并比较每个查询返回的行数,如果包含Cat的行少于包含Dog的行,则输出“Cat”,反之亦然。 编辑:这是我想要的一个例子。 因此,根据哪只宠物的排数最少,它应该与猫、狗、马或蛇产生回声。

  • 问题内容: 我堆了一会儿。我尝试调试,但找不到解决方案。我正在尝试计算数字的出现。所以我的问题是当我打印输出时 代替 因此,如果数字出现的次数超过1,则应该只说一次,而不是出现的次数。欢呼这是代码 问题答案: 另一个选项是番石榴的Multiset类,它将为您跟踪计数: 在这里,Multiset,HashMultiset和Ints都是番石榴类。 请注意,Multiset通过使用Map和counter

  • 所以,这不是关于如何计算数字中的数字。它是如何计算每一个有多少。说: 多少个0,多少个1等等,我想把它放到树形图中 那我该怎么做呢? 数组将是任意大小的,所以我想我可以循环通过它,对于每个新的int,检查每个数字,如果那么等。但不确定如何增加KV映射中的值。