Решал в идее, в ней всё работает, результат есть. Почему ругается компилятор на сайте? Такой же код, только на максимум прошел на ура.
package com.javarush.task.task18.task1804;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
/*
Самые редкие байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
try (FileInputStream inFile = new FileInputStream(new BufferedReader(new InputStreamReader(System.in)).readLine())) {
Map<Integer, Integer> byteMap = new HashMap<>();
int countMaxByte = 0;
int countMinByte = 1;
while (true) {
if (inFile.available()>0) {
int rByte = inFile.read();
if (!byteMap.containsKey(rByte)) {
byteMap.put(rByte, 1); //если в мапе нет такого ключа, то пихаем его туда с количеством 1
} else {
for (Map.Entry<Integer, Integer> pair : byteMap.entrySet()) {
int key = pair.getKey();
if (key != rByte) {
continue;
} else {
int value = pair.getValue();
countMaxByte = value + 1;
byteMap.put(rByte, (countMaxByte)); //а если есть такой же байт, то увеличиваем количество байт на +1
}
}
}
} else break;
}
// проверка на совпадение минимального количества
while (true) {
if (!byteMap.containsValue(countMinByte)) {
countMinByte++;
}
else {
break;
}
}
//вывод
for (Map.Entry<Integer, Integer> pair : byteMap.entrySet()) {
int valueOut = pair.getValue();
if (valueOut == countMinByte) {
System.out.print(pair.getKey() + " ");
}
}
}
}
}