Ошибка в алгоритме поиска последовательности единиц

Требуется найти в бинарном векторе самую длинную последовательность единиц и вывести её длину.

Сделал задание, но тесты заваливаются.

import java.util.Scanner;

class Scratch {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        final int count = input.nextInt();
        int max = 0;
        int result = 0;
        for (int i = 0; i < count; i++) {
            int value = input.nextInt();
            if (value == 1) {
                result++;
            } else {
                if (result > max) {
                    max = result;
                }
                result = 0;
            }
        }

        System.out.println(max == 0 && result != 0 ? result: max);
    }
}

Проблема возникает, когда обновляется максимальная длина последовательности, например 1 1 0 1 1 1 должно вывести 3, а выводит 2.

В чем причина проблемы вообще не понимаю, почему-то не учитывает последний элемент.


Ответы (1 шт):

Автор решения: Igor

Пройдите по Вашему коду шаг за шагом (с кaрандашом и листком бумаги) и вообще поймете.

        if (value == 1) {
            result++;
            if (result > max) {
                max = result;
            }
        } else {
            result = 0;
        }
        ...

    System.out.println(max);

"... мелкоскопа не имеем, а у нас так глаз пристрелявши." Николай Лесков "Левша"

→ Ссылка