Пока что лучшее решение, которое удалось написать, но почему-то значение не передается из временного счетчика (макс) в финальную переменную (лонгест).
Пытаюсь сделать так:
- сравниваем первый элемент со следующим;
- если они одинаковые, увеличиваем "мах" на 1;
- если строки повторялись, то max уже больше longest, передаем текущее значение "мах" в "longest", мах возвращаем в исходное положение;
- если строки не повторялись, то у обеих переменных одинаковое значение, выводится "1";
- если строки повторялись, и одна последовательность больше другой, то к концу цикла max должен перезаписать значение longest (вариант ввода "1112222222". Это не происходит - видимо, не выполняется условие "else", и я не могу понять, куда его переставить, чтобы заработало.
package com.javarush.task.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 {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
List<Integer> list = new ArrayList<Integer>();
for (int i=0; i<10; i++){
list.add(Integer.parseInt(reader.readLine()));
}
int longest = 1;
int max = 1;
for(int i = 0; i < 9; i++)
{
if(list.get(i) == list.get(i+1)){
max++;
}
else if(longest < max){
longest = max;
max = 1;
}
else continue;
}
System.out.println(max);
System.out.println(longest);
}
}