Самые редкие байты

  • 10
  • Недоступна
Ввести с консоли имя файла. Найти байт или байты с минимальным количеством повторов. Вывести их на экран через пробел. Закрыть поток ввода-вывода.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (94)
  • популярные
  • новые
  • старые
Для того, что бы оставить комментарий вы должны авторизоваться
Shamil18 уровень
вчера, 22:33
Ребята просто добавьте один цикл к предыдущей задачке и все))
int min =max;
for (HashMap.Entry<Integer,Integer> entry: hm.entrySet()) {
      if (entry.getValue()<min) min=entry.getValue();
}
Sipa Barskij18 уровень
среда, 13:43
Господа ученики . Есть идея - кто плюс минус одинакового уровня, объединится в группу , в той же телеге. По моему опыту , это существенно может улучшить обучающий процесс. Задачки с джава раша, концепты решений, обмен книгами и видео, вообщем эффект должен быть. Кому интересно - https://t.me/JavaGramGroup
Maksim19 уровень, Алматы
вторник, 06:00
Порнография, а не постановка задачи. Нигде не сказано, что минимальное кол-во повторов, это когда повторов вообще нет, т.е. байт встречается только один раз. Будьте внимательны. У меня была проверка: найти минимальное количество байт, но не 1. Как только убрал это условие - валидатор принял. Еще один пример задания, где не алгоритм разрабатываешь, а борешься с валидатором, что бы задачу зачесть.
Georgy18 уровень, Москва
5 февраля, 16:13
На заметку- валидатор не пашет с while(true) и выходом из цикла при байте = -1 пашет только с while (myFileStream.available()>0)
Евгений Ашкинадзе18 уровень, Минск
31 января, 23:07
Я в мапе мнимум повторов искал так: начиная с единицы и до размера мапы искал значения повторов. Как только что-то находится, то через foreach забирал те ключи(байты), у которых в значении есть найденый минимум.
S3R3N1TY20 уровень, Санкт-Петербург
31 января, 21:07
Решил через
int[] array = new int[256]; //индексы элементов массива и есть наши байты от 0 до 255 = всего 256
          while (inputStream.available()>0)
              array[inputStream.read()]++; //для каждого прочитан.байта увеличиваем значение в массиве
То есть в начале заполнили массив а потом с ним работаем. Далее: 1. Находим в массиве минимальный элемент-значение (кол-во повторений одного и того же байта в файле), то что мы считали инкрементом ++ во время чтения файла. 2. Выводим на экран все байты (в нашем случае индексы нашего массива) у которых значение равно нашему найденному минимальному.
Evgenii25 уровень, Санкт-Петербург
25 января, 12:09
Это кошмар, почему не написано в задании, что можно использовать только обычный массив?!!! Валидатор не принимает решение через Arraylist
сергей сергеевич20 уровень, Krasnoznamensk
26 января, 16:03
у меня принято решение через HashMap
Иван Подаван22 уровень
20 января, 08:03
В принципе логика как и задачи перед ней. Заполнить массив данными и потом выдать на экран элементы массива которые встречаются меньше всего, и которые не равны 0. То есть если в ячейке массива стоит ноль, то такого байта в принципе нет в файле. Код получается лаконичный и довольно легко читаем
Алексей18 уровень
14 января, 06:38
Сначала написал, потом удалил (заметив ошибку в собственном коде), сейчас снова пишу. Постановка задачи гоуно. Нигде не сказано, что байт должен существовать, при этом минимальное количество повторов = отстутствие повторов.
30 декабря 2018, 21:38
Никак не могу понять почему, но валидатор не принимал задачу, решенную при помощи статичесткого поля (массива), когда внес этот массив в main все принял