遍历数组检查数组是否包含两个数字

Iterating over arrays Check if an array contains two numbers

编写一个程序,读取一个未排序的整数数组和两个数字 nm。该程序必须检查 nm 是否在数组中 彼此相邻 出现(以任何顺序)。

输入数据格式

同一行中的所有数字由 space 字符分隔。

输出数据格式

只有一个值:truefalse

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int size = scanner.nextInt();
        int[] table = new int[size];
        for (int i = 0; i < table.length; i++) {
            table[i]=scanner.nextInt();
        }
        int n = scanner.nextInt();
        int m = scanner.nextInt();

        for (int i = 0; i < table.length ; i++) {
            //stuck here 
        }
    }
}

我觉得可以帮到你:

        for (int i = 0; i < table.length-1 ; i++) {
            if (table[i] == m){
                if (table[i+1] == n) {
                    System.out.println("true");
                    return;
                }
            }
            if (table[i] == n){
                if (table[i+1] == m) {
                    System.out.println("true");
                    return;
                }
            }
        }
        System.out.println("false");

这将通过所有测试:

import java.util.Scanner;

class Main {

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

        int arraySize = scanner.nextInt();
        int[] array = new int[arraySize];

        for (int i = 0; i < arraySize; i++) {
            array[i] = scanner.nextInt();
        }

        int n = scanner.nextInt();
        int m = scanner.nextInt();
        boolean valuesAreNotOccurNearEachOther = true;

        for (int i = 0; i < array.length - 1; i++) {
            if (array[i] == n || array[i] == m) {
                if (array[i + 1] == m) {
                    valuesAreNotOccurNearEachOther = false;
                }
                if (array[i + 1] == n) {
                    valuesAreNotOccurNearEachOther = false;
                }
            }
        }

        System.out.println(valuesAreNotOccurNearEachOther);
    }
}