@AlekseyKuzmin
SPB

Последовательно идущие единицы — почему одно из решений не работает?

На Яндекс.Интервью есть простая задача "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 (кол-во элементов вектора).
В какой ситауции это начинает влиять на результат? Подскажите плз
  • Вопрос задан
  • 2212 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы