public static void main(String[] args) throws IOException {
//напишите тут ваш код
ArrayList<Integer>list=new ArrayList<>();
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
for(int i=0;i<10;i++)list.add(Integer.parseInt(reader.readLine()));
int[] A=new int[10];
for(int i=0;i<list.size();i++){
A[i]=Counter(i,list);
}
sort(A);
System.out.println(A[A.length-1]);
}
public static int Counter(int C,List list){
int count=0;
for(int i=0;i<list.size()-C;i++){
if(list.get(C).equals(list.get(C+i)))count++;
else if(!(list.get(C).equals(list.get(i))))return count;
}
return count;
}
}
Создал метод, который считает число повторений, в главном методе создал массив, в который записываются количества повторений для каждого элемента листа. Отсортировал массив и вывел последнее значение. В IDE все работает как надо. Че ему не нравится? где я что то упускаю?)Maks Panteleev
41 уровень
Почему валидатору не нравится это решение?
Обсуждается
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
KIRAExpert
20 марта 2021, 10:31
откуда взялось 6?
0
Maks Panteleev Java Developer в Bell Integrator
20 марта 2021, 10:34
это я в IDE тестил, потом поменял на 10
0
KIRAExpert
20 марта 2021, 10:35
Тут наверное Arrays.sort(A);
0
KIRAExpert
20 марта 2021, 10:50
попробуйте 1 2 2 2 2 2 1 2 2 2
самая длинная последовательность 5
0
Maks Panteleev Java Developer в Bell Integrator
20 марта 2021, 15:32
не работает, действительно. То работает то нет, но не понимаю почему...
0
KIRAExpert
20 марта 2021, 15:46
Приведу пример с 5 элементами
Список для примера 1, 2, 2, 1, 2
Первая проверка для i = 0
Тут ничего интересного метод вернет 1
0
KIRAExpert
20 марта 2021, 15:49
Вторая проход цикла i = 1
Начинаем считать count = 0 C = 1
Первый проход этого цикла 1 элемент равен первому count = 1
Второй проход i = 1 С = 1 count = 1
Тоже не особо интересно, list.get(1).equals(list.get(2) увеличиваем count
Третий проход i = 2 С = 1 count = 2
list.get(1).equals(list.get(3) - не выполнится
проверяем else if
!list.get(1).equals(list.get(2) тоже не выполнится (первый и 2 индексы в листе одинаковые)
Четвертый i = 3 С = 1 count = 2
list.get(1).equals(list.get(4) выполнится и станет count = 3
i = 4 выйдете из цикла вернув count 3, последовательности которой нет 0
Maks Panteleev Java Developer в Bell Integrator
21 марта 2021, 09:03
кажется я разобрался, все гораздо проще, чем казалось. Я не совсем разобрался как работает else if, слишком усложнил код и поэтому получилась путаница.
переписал метод таким образом и прогнал последовательность
после чего напечатал полученный массив и получил закономерный правильный результат)
Я забыл что else if это второе условие, которое проверяется после того как выполнено первое. А мне нужен был обычный элс)сам себе перехитрил) 0