Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Scanner;
- /**
- *
- * @author johnafish
- */
- public class Main {
- public static void main(String[] args) {
- Scanner s = new Scanner(System.in);
- int N = s.nextInt(); //Number of sensors
- HashMap<Integer, Integer> freq = new HashMap<>();
- for (int i = 0; i < N; i++) {
- int M = s.nextInt();
- int value = 1;
- if (freq.containsKey(M)){
- value = freq.get(M)+1;
- }
- freq.put(M, value);
- }
- int maxFreq=0;
- int secondMaxFreq = 0;
- ArrayList<Integer> max = new ArrayList<>();
- ArrayList<Integer> second = new ArrayList<>();
- for (int key : freq.keySet()){
- if(freq.get(key)>maxFreq){
- second = (ArrayList<Integer>)max.clone();
- secondMaxFreq = maxFreq;
- maxFreq = freq.get(key);
- max.clear();
- max.add(key);
- }
- else if (freq.get(key)==maxFreq){
- max.add(key);
- }
- else if (freq.get(key)>secondMaxFreq){
- secondMaxFreq = freq.get(key);
- second.clear();
- second.add(key);
- }
- else if (freq.get(key)==secondMaxFreq){
- second.add(key);
- }
- }
- int maxAbs = 0;
- if(max.size()==1){
- for (int secondKey : second){
- if (Math.abs(max.get(0)-secondKey)>maxAbs){
- maxAbs = Math.abs(max.get(0)-secondKey);
- }
- }
- }
- else if (max.size()==2){
- maxAbs = Math.abs(max.get(0)-max.get(1));
- }
- else {
- for(int key : max){
- for (int key2 : max) {
- if (Math.abs(key-key2)>maxAbs){
- maxAbs = Math.abs(key-key2);
- }
- }
- }
- }
- System.out.println(maxAbs);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement