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

  • 10
  • Недоступна
Если числа повторяются, значит, это кому-нибудь нужно? В данный момент это нужно нам, чтобы потренироваться решать задачи на списки. Давайте создадим список чисел и добавим в него 10 чисел с клавиатуры. Наша задача состоит в том, чтобы вывести на экран длину самой длинной последовательности повторяющихся чисел в списке.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (784)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Дмитрий 11 уровень, Москва
21 февраля, 11:37
МиниКостыль, зато буков мало...
for (int n: num){
            if (n == last) count++;
            else {res = res > count ? res : count; count = 1;}
            last = n;
        }

System.out.println(Тут_ещё_раз_проверка_или_последняя_цепочка_не_присвоится);
w0e666 11 уровень, Киев
21 февраля, 02:47
Код не работал для чисел больше 127 , а во всех остальных случаях все было отлично В поисках решения проблеммы наткнулся на эту интересную статью Java Integer Cache В моем случае я использовал Integer а не int и чтобы сравнить значения вроде бы одинаковых интов пришлось писать
if (current.intValue() == next.intValue()) {
                    repeatCounter++;
                    if(max < repeatCounter) {
                        max = repeatCounter;
                    }
потому-как кеш целых чисел для Integer по умолчанию от -128 до 127, то числа вне этого диапазона уже нельзя проверить на еквивалентность через == Надеюсь помог тем у кого такая же ошибка была
Василий 8 уровень
11 февраля, 10:00
import java.util.List;
List<Integer> list = new ArrayList<Integer>();
Сергей 10 уровень, Дзержинский
14 февраля, 19:40
огромное спасибо) думал чего он ругается)
Dolivo Serg 9 уровень, Харьков
7 февраля, 13:20
Михаил 14 уровень, Новосибирск
3 февраля, 13:34
Как оказалось, надо внимательнее вчитываться в задание, просят сделать тип List, а не ArrayList :).
Dmitry Panchenko 15 уровень, Москва
25 января, 17:57
кто бы мог подумать, что только equals() 🤯🤯🤯 Руководство по классу Java Integer
Nimgvae 10 уровень, Брауншвейг
25 января, 14:31
Подскажите, какие именно условия я не соблюдаю?!
Nimgvae 10 уровень, Брауншвейг
25 января, 18:13
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); List<Integer> list = new ArrayList<>(); for (int i = 0; i < 10; i++) { String string = reader.readLine(); list.add(Integer.parseInt(string)); } int count = 1; int max = 1; for (int i = 0; i < 9; i++) { if (list.get(i).equals(list.get(i + 1))) { max++; } else if (max > count) { count = max; max = 1; } else { max = 1; } } if (max > count) { count = max; } System.out.println(count); } Получив правильный вариант для валидатора, я по прежнему не могу понять ЧЕМ мой вариант плох?!
Dolivo Serg 9 уровень, Харьков
7 февраля, 12:07
попробуй 1,2,3,4,5,6,7,8,9,9
Михаил Никитюк 9 уровень, Харьков
21 января, 22:08
Я понял что намудрил когда зашел глянул правильное решение... Мой код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
List<Integer> list = new ArrayList<>();
List<Integer> list1 = new ArrayList<>();

for (int i = 0; i < 10; i++) list.add(Integer.parseInt(reader.readLine()));

int a = list.get(0);
int count = 0;

for (int i = 0; i < list.size(); i++){
    int b = list.get(i);
    if (a==b){
        count+=1;
    }else {
        list1.add(count);
        count = 0;
        i--;
    }
    a = b;
}

list1.add(count);
Collections.sort(list1);
System.out.println(list1.get(list1.size()-1));
хотя больше от правильного решения всего на 2 строчки
Сергей 10 уровень, Дзержинский
14 февраля, 19:44
я думаю я больше намудрил) BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); List<Integer> list = new ArrayList<Integer>(); for (int i = 0; i < 10; i++) { int a = Integer.parseInt(reader.readLine()); list.add(a); } int q = 1; int w = 0; int e = 1; for (int i = 0; i < (list.size() - 1); 9; i++) { w = q; if (list.get(i).equals(list.get(i + 1))) { q++; } if ((q == w) && (q > e)) { e = q; } if (q == w) { q = 1; } if ((i == (list.size() - 2)) && (q > e)) { e = q; } } System.out.println(e);
Валерия Тулякова Программист 1 категории
16 января, 12:28
Это какая-то ересь, если честно)) Cамая длинная последовательность 1. Создай список чисел. Создаю:
List<Integer> numList = new LinkedList<>();
Валидацию не проходит. Где ошибка?)) 2. Добавь в список 10 чисел с клавиатуры. Пожалуйста:
int count = 10;
        for (int i = 0; i < count; i++) {
            numList.add(Integer.parseInt(buf.readLine()));
        }
Валидацию с count не проходит. Почему? Одного не могу понять - ошибки компиляции не возникает. Программа работает, все хорошо. Перепишите Вы автотесты под Ваши же условия. Или исправьте условия, что нужно создавать именно ArrayList или что нельзя пользоваться переменными в цикле... Вот что должен думать ученик, когда он написал всё правильно, но валидатор не пропускает? Наверняка у него пропадет настроение, а у кого-то может пропасть и желание учиться.
Максим Ермола 9 уровень, Минск
17 января, 12:04
3. В методе main объяви переменную типа List с типом элементов Integer и сразу проинициализируй ee. List<Integer> numList = new LinkedList<Integer>();
Валерия Тулякова Программист 1 категории
17 января, 18:54
Нет, это не является ошибкой. Список я проинициализировала правильно. Среда разработки сама убирает Integer во второй части конструкции инициализации списка, т.к. мы уже указали дженерик в начале. Я решила задачу с первой попытки, не считая придирок валидатора, о которых написала в комментарии.
Gaziz 19 уровень, Уфа
14 января, 16:20
127 equals thats all.