JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Не проходит по последнему условию
Apanaev
13 уровень
  • 07.12.2022
  • 378просмотров
  • 11комментариев

Не проходит по последнему условию

Вопрос по задаче Cамая длинная последовательность
Java Syntax,  10 уровень,  5 лекция
Решен

  1. Создай список чисел.
  2. Добавь в список 10 чисел с клавиатуры.
  3. Вывести на экран длину самой длинной последовательности повторяющихся чисел в списке.

Пример для списка 2, 4, 4, 4, 8, 8, 4, 12, 12, 14:

3
Искомое значение равно 3, т.к. самая длинная последовательность повторяющихся чисел состоит из трех четверок.

Требования:
  • Программа должна выводить число на экран.
  • Программа должна считывать значения с клавиатуры.
  • В методе main объяви переменную типа List с типом элементов Integer и сразу проинициализируй ee.
  • Программа должна добавлять в коллекцию 10 чисел, согласно условию.
  • Программа должна выводить на экран длину самой длинной последовательности повторяющихся чисел в списке.
package com.javarush.task.jdk13.task08.task0812; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; /* Cамая длинная последовательность */ public class Solution { public static void main(String[] args) throws IOException { //напишите тут ваш код List<Integer> list = new ArrayList<Integer>(); for(int i=0;i<10;i++){ BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); //System.out.println(reader); int in=Integer.parseInt(reader.readLine()); list.add(in); } int Tsovp=0,sovp=0; for(int i=0;i<list.size()-1;i++){ if (list.get(i)==list.get(i+1)){Tsovp++;} if(Tsovp>sovp){sovp=Tsovp;} Tsovp=0; } System.out.println(sovp); }}
0
Комментарии (11)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Денис Enterprise Java Developer
7 декабря 2022, 11:00решение
int counter = 1;
int result = 0;
for (int i = 0; i < list.size() - 1; i++) {
    if (list.get(i).equals(list.get(i + 1))) {
        counter++;
    } else {
        result = Math.max(counter, result);
        counter = 1;
    }
}
result = Math.max(counter, result);
+5
Apanaev
Уровень 13
7 декабря 2022, 11:07
Абсолютно правильно, спасибо !
0
Денис Enterprise Java Developer
7 декабря 2022, 11:09
Нез :) Единственное, я так и не придумал как изящно избавиться от последней строчки, в случае если вся последовательность это одна повторяющаяся цифра. И это, vk дело говорит, завязывай с Python-style :) Это совершенно нечитаемо.
0
Apanaev
Уровень 13
7 декабря 2022, 11:15
А что конкретно режет глаз ? Отсутствие пробелов, фигурные скобки в одной строке и наспех названные переменные ?
0
Денис Enterprise Java Developer
7 декабря 2022, 11:26
Просто сравни с моим вариантом :) По меркам Java твое написание не канонично. Почему так пишут в питоне понятно, там в целом убогий механизм разделения кода на скоупы, но здесь у тебя есть для этого все необходимые инструменты. Делай правильные отступы, ставь пробелы (тут все как и в любом текстовом документе, пробел после запятой, два пробела по бокам от тире и так далее), не забывай нормально ставить и разделять фигурные скобки, что бы было наглядно видно какая к какому скоупу относится. Переменные именуются с маленькой буквы, глянь что такое camelCase - станет яснее :) Однострочники тоже плохо читаются, типа того что у тебя в 27 и 28 строках. Если ты пишешь в Intellij IDEA - там есть автоформаттер. Нажимаешь Ctrl + Alt + L (cmd + opt + L если у тебя мак)
0
Apanaev
Уровень 13
7 декабря 2022, 11:31
Понял, спасибо за пояснения 👍
0
hidden #598481
Уровень 27
7 декабря 2022, 10:55решение
У тебя все последовательности на 1 короче, чем фактическая длина. Каждый элемент - это уже последовательность длиной 1. PS Имена переменных, оформление кода - 🤮. Без обид 😅
+2
Apanaev
Уровень 13
7 декабря 2022, 10:58
блин, пол дня голову ломал, запустил в отладчике и за минуту до твоего ответа нашёл косяк )) но всё равно сяп !
0
Apanaev
Уровень 13
7 декабря 2022, 11:04
Там правда главный косяк был 29 строчке, она не на своём месте
0
Apanaev
Уровень 13
7 декабря 2022, 10:07
В 27 строчке заменил == на equals, не прокнуло.
0
hidden #598481
Уровень 27
7 декабря 2022, 10:55
equals будет правильным выбором
0
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush