代码没有产生预期的输出

时间:2017-09-04 22:23:35

标签: java arrays

我正在努力纠正我在采访中遇到的特殊问题(问题是找到频率恰好为f 的最小元素)。我认为我已经在很大程度上设计了解决方案,但问题是关于一些故障,这反过来会产生一些错误的输出。我已经尝试了所有的东西,检查并重新检查了代码,但问题仍然存在。由于我是java编程中的初学者,因此对它没有太多了解所以请帮助我。以下是我的尝试:

public static int smallestKFreq(int a[], int n, int f)
    {
        HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();

        // Map is used to store the count of
        // elements present in the array
        for (int i = 0; i < n; i ++)

            if (map.containsKey(a[i]))
                map.put(a[i], m.get(a[i]) + 1);

            else map.put(a[i], 1);

        // Traverse the map and find minimum
        // element with frequency f.
        int res = Integer.MAX_VALUE;
        Set<Integer> s = map.keySet();

        for (int temp : s)
            if (map.get(temp) == f)
                res = Math.min(res, temp);

        return (res != Integer.MAX_VALUE)? res : 1;
    }

1 个答案:

答案 0 :(得分:1)

好的,看看你的问题,好像你错了return陈述!!!

应该是

return (res !=Integer.MAX_VALUE)?res : -1;

尝试这个我认为应该解决问题......