Это же решение использовала для поиска максимального байта, проверку прошла.
Не могу понять, почему не принимает минимальный.
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;
import java.util.concurrent.atomic.AtomicInteger;
/*
Самые редкие байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String fileName = br.readLine();
FileInputStream fis = new FileInputStream(fileName);
Map<Integer, AtomicInteger> bytes = new HashMap<>();
while (fis.available() > 0) {
int uniqueByte = fis.read();
if (!(bytes.containsKey(uniqueByte))) {
bytes.put(uniqueByte, new AtomicInteger(1));
//System.out.println("еще нет " + uniqueByte);
} else if (bytes.containsKey(uniqueByte)) {
bytes.get(uniqueByte).incrementAndGet();
//System.out.println(uniqueByte + " уже есть, кол-во ");
}
}
fis.close();
/*for (Map.Entry<Integer, AtomicInteger> p : bytes.entrySet()){
System.out.println(p.getKey()+ " "+ p.getValue().get());
}*/
int min = 0;
for (Map.Entry<Integer, AtomicInteger> p : bytes.entrySet()) {
min = p.getValue().get();
if (p.getValue().get() < min) {
min = p.getValue().get();
}
}
//System.out.println("min " + min);
for (Map.Entry<Integer, AtomicInteger> p : bytes.entrySet()) {
if (p.getValue().get() == min) {
System.out.print(p.getKey() + " ");
}
}
}
}