Cамая длинная последовательность

  • 10
  • Недоступна
Если числа повторяются, значит, это кому-нибудь нужно? В данный момент это нужно нам, чтобы потренироваться решать задачи на списки. Давайте создадим список чисел и добавим в него 10 чисел с клавиатуры. Наша задача состоит в том, чтобы вывести на экран длину самой длинной последовательности повторяющихся чисел в списке.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (714)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Timas10 уровень, Витебск
среда, 06:33
Сделал сначала
List<Integer> list = new LinkedList<>();
валидатор не пропустил, исправил на ArrayList, прошло. В условии не написано, чем проинициализировать list. Хотя, в данном случае и с LinkedList и с ArrayList - программа работает, как надо. ps. моё решение - такое же, как у Pavel Lisin, со счетчиком и if.
Андрей9 уровень, Минск
17 сентября, 10:10
Я добавил еще один список чисел и сразу добавил в него 1 (для случая если не будет повторяющихся числе). Потом создаем счетчик = 1 и заносим его значение во второй список только в том случае если числа основного списка равны, если не равны ничего не заносим и счётчик скидываем на 1. Затем сортируем 2ой список методом
Collections.sort(имя списка);
и выводим на экран последний элемент отсортированного списка. P.S. Хоть компилятор и защитал решение, но считаю этот алгоритм не рациональным, разумнее сделать как в посте ниже описал Pavel Lisin.
Евгений17 уровень, Москва
14 сентября, 11:47
Убедись, что программа работает правильно, если последовательность состоит из чисел, которые больше 127... ничего не понял... последовательность выводится, это 3 числа 98 подряд, что ему не нравится???
Даниил10 уровень, Ярославль
14 сентября, 16:34
Исправь сравнение чисел на equals()
Евгений17 уровень, Москва
16 сентября, 16:52
благодарствую)
Дмитрий19 уровень, Москва
вчера, 13:23
у меня такая же дичь вылезала, быстренько поправил с помощью приведения к инту (int) list.get(i);
Pavel Lisin13 уровень, Нур-Султан
12 сентября, 17:34
C 10-ой попытки... Но зато понял что и как. Первым делом нужно создать список List<Integer> переменная = new ArrayList<>();. new List не даёт создать компилятор т.к. List считается абстрактным классом. В книжке вычитал, что абстрактные классы служат только для наследования, создавать объекты абстрактных классов запрещено. После нужно создать две переменные типа int и присвоить им значение 1 каждому. Далее создаём цикл, которым проходим по длине списка-1, чтобы не выходить за пределы индексов списка: for ( int i = 0; i<list.size()-1; i++) внутри цикла увеличиваем одно переменную count++, которую создали ранее и с помощью if проверяем: if (max < count) max = count; Если последовательность чисел была, то count больше max, значит max будет хранить count, который увеличился ровно на столько, какая последовательность чисел. За пределами первого цикла нужно указать else count = 1; Если последовательности никакой нет, то выводится max, который при создании был равен 1; Всем успехов и удачи, а я пошёл дальше решать задачки :D
Alexander Mineyev8 уровень, Москва
10 сентября, 08:49
да, писец...задачу допер только с огромными подсказками.....
Анна22 уровень, Санкт-Петербург
5 сентября, 13:45
Может кто подсказать, использовала для сравнения соседних чисел сравнение ==, не пропускало одно из условий, выскочила подсказка "проверьте для работы над числами больше 127", сделала через equals все прошло, но почему так? почему сравнение через == при больших числах работало неправильно?
Сэм Фишер18 уровень, Кишинев
7 сентября, 14:58
ниже в комментариях человек расписал про класс Integer и его ограничения
Serg Koval19 уровень, Киев
9 сентября, 15:06
потому что Integer - ссылочный тип данных, а ссылочные данные сравниваются через equals.
Игорь Че18 уровень, Подольск
12 сентября, 16:17
Boxing/Unboxing и нюансы связанные с этим) как нибудь почитай int'ы до 127 кэшируются, объекты не создаются, а берутся из пула как строки
дмитрий греков15 уровень, Казань
4 сентября, 16:21
я зачем-то отсортировал список, не делайте так :)
Cypriiz12 уровень
2 сентября, 16:49
Всего решило 28000 человек, где все?)
Павел10 уровень, Новосибирск
30 августа, 12:02
Программа должна добавлять в коллекцию 10 чисел, согласно условию. Как с этим бороться? Остальное проходит все
Александр17 уровень, Москва
2 сентября, 19:02
"В методе main объяви переменную типа List с типом элементов Integer и сразу проинициализируй ee" проинициализировать переменную (создать объект) list типа List<Integer> с помощью new List<Integer>() невозможно (Идея подсказывает что-то про абстрактный класс, наверное, про это будет рассказано позже). А вот создать объект List<Integer> list = new ArrayList<Integer>(); вполне себе вариант
Павел10 уровень, Новосибирск
5 сентября, 09:19
Задачка я решил, компилятор идет на проверке сверху вниз, и получается я делал второй лист для решения и разместил его выше по коду чем лист по условию, поменял их местами прога очухалась)
Vsevolod9 уровень, Москва
24 августа, 09:01
И, кстати, почему в названии задания первая буква - "С" - символ латиницы, а не кириллицы? ;)