如何打印在数组中恰好出现(n / k)次的元素数量?

时间:2019-07-09 10:55:51

标签: java arrays hash

我想在数组元素java中打印恰好发生(n / k)次的元素数。我正在使用另一个数组,但是我能够打印元素的值,而不是输出中要求的元素数。请帮忙。

import java.io.*;
import java.util.*;

class GFG
{
    public static void main (String[] args)
    {
        // Taking input through Scanner class
        Scanner sc = new Scanner(System.in);

        int testcase = sc.nextInt();

        while (testcase-- > 0) {
            int sizeof_array = sc.nextInt();
            int k = sc.nextInt();
            int a[] = new int[sizeof_array];

            for (int i = 0; i < sizeof_array; i++) {
                a[i] = sc.nextInt();
            }

            Geeks obj = new Geeks();
            obj.countSpecials(a, sizeof_array, k);
        }
    }
}

class Geeks
{
    static void countSpecials(int a[], int n, int k)
    {
        int f = (int) Math.floor(n / k);
        boolean visited[] = new boolean[n];

        // your code here
        for (int i = 0; i < n; i++) {
            int count = 1;
            for (int j = i + 1; j < n; j++) {
                if (a[i] == a[j]) {
                    visited[j] = true;
                    count += 1;
                    if (count == f) {
                        System.out.println(a[j]);
                    }
                }
            }
        }
    }
}

请仔细阅读此代码并适当回答。

预期的示例输出:

输入: 1个 6 2 1 4 1 4 4 1

输出: 2

但是我的输出:

对于输入: 1个 6 2 1 4 1 4 4 1 您的输出是: 1个 4

0 个答案:

没有答案