任何人都知道如何从数组中获取模式值?例如,如果我有一个数字不同的数组,我如何使用Java来搜索哪个数字最多?
完成O(n)而不是O(n ^ 2).需要长度> 0的数组.
public static int getMode(int[] values) { HashMapfreqs = new HashMap (); for (int val : values) { Integer freq = freqs.get(val); freqs.put(val, (freq == null ? 1 : freq+1)); } int mode = 0; int maxFreq = 0; for (Map.Entry entry : freqs.entrySet()) { int freq = entry.getValue(); if (freq > maxFreq) { maxFreq = freq; mode = entry.getKey(); } } return mode; }