(Java)Ошибка ArrayIndexOutOfBoundsException

Собственно, задача: В массиве не должны встречаться два соседних числа.

В блоке "Data input" мы собираем длину массива, вводим числа в массив и вводим два числа, которые не должны оказаться рядом.

В блоке "Checking" осуществляю проверку на наличие этих двух чисел рядом друг с другом.

В общем все проверки код проходит, но на последнем тесте выдает ошибку: "java.lang.ArrayIndexOutOfBoundsException: Index -1 out of bounds for length 2"

Уже второй день пытаюсь разобраться, как индекс вообще принимает значение -1, и что же можно сделать, чтобы этого избежать. Поэтому буду сильно благодарен вашей помощи, ну и конечно, абсолютно любым советам по данному коду и теме массивов, Спасибо! :)

import java.util.Scanner;

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

        // Data input
        int len = scanner.nextInt();
        int[] array = new int[len];
        for (int i = 0; i < len; i++) {
            array[i] = scanner.nextInt();
        }
        int n = scanner.nextInt();
        int m = scanner.nextInt();

        // Checking
        boolean isOccured = true;
        for (int i = 0; i < len - 1; i++) {
            if ((array[i] == n && array[i + 1] == m) || (array[i] == n && array[i - 1] == m)) {
                isOccured = false;
                break;
            }
            else if ((array[i] == m && array[i + 1] == n) || (array[i] == m && array[i - 1] == n)) {
                isOccured = false;
                break;
            }
        }
        System.out.println(isOccured);
    }
}

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

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

ОК, достаточно поправить проверку так (else не нужно):

 boolean isOccured = true;
 for (int i = 0; i < len - 1; i++) {
     if ((array[i] == n && array[i + 1] == m) || 
         (array[i] == m && array[i + 1] == n)) {
             isOccured = false;
             break;
         }

P.S. isOccured - плохое имя, значение его противоположно названию. может быть - notOccured или isAbsent

→ Ссылка