Ход рассуждений:
будем сравнивать соседние элементы списка и считать повторения в цикле. Наибольшее количество повторений подряд и есть искомая величина.
1) Ищем с конца ( int i = integerList.size() - 1) до второго элемента списка (i >= 1), сравнивая текущий элемент со следующим
( integerList.get(i).equals(integerList.get(i - 1)) ).
2) Если нашли повторяющийся элемент списка, увеличиваем текущий счётчик на 1 (currentCount += 1).
3) Тут же проверяем: текущий счётчик больше искомой величины (currentCount > count) ? Если да, то заносим в искомую величину текущий счётчик (count = currentCount).
4) Если на текущей итерации повторений у соседних элементов списка нет, то "обнуляем" текущий счётчик (currentCount = 1).
5) После цикла искомая величина предположительно лежит в count. Выводим её в консоль.
Проводил тест в консоли IntelliJ IDEA с разными последовательностями, ошибок не находил. Но валидацию не проходит =\
Не могу понять почему. В чём моя ошибка?
![]()
package com.javarush.task.task08.task0812;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
/*
Самая длинная последовательность
*/
public class Solution {
private static int count = 1;
private static int currentCount = 1;
public static void main(String[] args) throws IOException {
//напишите тут ваш код
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<Integer> integerList = new ArrayList<>();
for (int i = 0; i < 10; i += 1)
{
integerList.add(Integer.parseInt(reader.readLine()));
}
for (int i = integerList.size() - 1; i >= 1; i -= 1)
{
if (integerList.get(i).equals(integerList.get(i - 1)))
{
currentCount += 1;
if (currentCount > count)
{
count = currentCount;
}
}
else
{
currentCount = 1;
}
}
System.out.println(count);
}
}