На Яндекс.Интервью есть простая задача "B. Последовательно идущие единицы".
Ссылка
https://contest.yandex.ru/contest/8458/problems/B/
сделал два решения на Java 8
Первое проходит успешно все тесты на яндексе.
public class Application
{
public static void main(String[] args) throws Exception {
BufferedReader r = new BufferedReader(new FileReader("input.txt"));
int size = Integer.valueOf(r.readLine());
int[] sequence = new int[size + 1];
for (int i = 1; i <= size; i++) {
sequence[i] = Integer.valueOf(r.readLine());
}
System.out.println(longestSequence(sequence));
}
public static int longestSequence(int[] vector)
{
int maxLength = 0;
int currentLength = 0;
for (int i = 0; i <= vector.length - 1; i++)
{
if (vector[i] == 1)
{
currentLength++;
maxLength = (currentLength > maxLength) ? currentLength : maxLength;
}
else
{
currentLength = 0;
}
}
return maxLength;
}
}
второе решение короче.
Но только первые несколько тестов успешны. Вердикт wrong answer.
public class Application
{
public static void main(String[] args) throws Exception {
BufferedReader r = new BufferedReader(new FileReader("input.txt"));
int maxLength = 0;
int currentLength = 0;
int value;
String line;
while ((line = r.readLine()) != null)
{
try {
value = Integer.valueOf(line);
if (value == 1) {
currentLength++;
maxLength = (currentLength > maxLength) ? currentLength : maxLength;
} else {
currentLength = 0;
}
}
catch (Exception e)
{
}
}
System.out.println(maxLength);
}
}
По моим тестам все ОК в обеих решениях.
Да, во втором решении, я опустил использование первого числа n (кол-во элементов вектора).
В какой ситауции это начинает влиять на результат? Подскажите плз