/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main
(String[] args
) { int[] nums = {1,1,2,3,3,3,4,5,6,7,8,9,12,21,3,2,1};
Map
<Integer, Integer
> freqMap
= new HashMap
<>(); int maxiFreq
= Integer.
MIN_VALUE, maxiElement
= nums
[0]; int miniFreq
= Integer.
MAX_VALUE, miniElement
= nums
[0];
for (int i = 0; i < nums.length; i++) {
freqMap.put(nums[i], freqMap.getOrDefault(nums[i], 0) + 1);
}
for (Map.
Entry<Integer, Integer
> num
: freqMap.
entrySet()){ if (num.getValue() >= maxiFreq){
maxiFreq = num.getValue();
maxiElement = num.getKey();
}
if (num.getValue() <= miniFreq){
miniFreq = num.getValue();
miniElement = num.getKey();
}
}
System.
out.
println("Max frequency element is " + maxiElement
+ " with frequency: " + maxiFreq
); System.
out.
println("Min frequency element is " + miniElement
+ " with frequency: " + miniFreq
); }
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICBpbnRbXSBudW1zID0gezEsMSwyLDMsMywzLDQsNSw2LDcsOCw5LDEyLDIxLDMsMiwxfTsKIAogICAgICAgIE1hcDxJbnRlZ2VyLCBJbnRlZ2VyPiBmcmVxTWFwPSBuZXcgSGFzaE1hcDw+KCk7CiAgICAgICAgaW50IG1heGlGcmVxID0gSW50ZWdlci5NSU5fVkFMVUUsIG1heGlFbGVtZW50ID0gbnVtc1swXTsKICAgICAgICBpbnQgbWluaUZyZXEgPSBJbnRlZ2VyLk1BWF9WQUxVRSwgbWluaUVsZW1lbnQgPSBudW1zWzBdOwogCiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBudW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGZyZXFNYXAucHV0KG51bXNbaV0sIGZyZXFNYXAuZ2V0T3JEZWZhdWx0KG51bXNbaV0sIDApICsgMSk7CiAgICAgICAgfQogCiAgICAgICAgZm9yIChNYXAuRW50cnk8SW50ZWdlciwgSW50ZWdlcj4gbnVtIDogZnJlcU1hcC5lbnRyeVNldCgpKXsKICAgICAgICAgICAgaWYgKG51bS5nZXRWYWx1ZSgpID49IG1heGlGcmVxKXsKICAgICAgICAgICAgICAgIG1heGlGcmVxID0gbnVtLmdldFZhbHVlKCk7CiAgICAgICAgICAgICAgICBtYXhpRWxlbWVudCA9IG51bS5nZXRLZXkoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobnVtLmdldFZhbHVlKCkgPD0gbWluaUZyZXEpewogICAgICAgICAgICAgICAgbWluaUZyZXEgPSBudW0uZ2V0VmFsdWUoKTsKICAgICAgICAgICAgICAgIG1pbmlFbGVtZW50ID0gbnVtLmdldEtleSgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogCiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNYXggZnJlcXVlbmN5IGVsZW1lbnQgaXMgIiArIG1heGlFbGVtZW50ICsgIiB3aXRoIGZyZXF1ZW5jeTogIiArIG1heGlGcmVxKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIk1pbiBmcmVxdWVuY3kgZWxlbWVudCBpcyAiICsgbWluaUVsZW1lbnQgKyAiIHdpdGggZnJlcXVlbmN5OiAiICsgbWluaUZyZXEpOwogICAgfQp9