簡體   English   中英

遍歷 arrays 檢查數組是否包含兩個數字

[英]Iterating over arrays Check if an array contains two numbers

編寫一個程序,讀取一個未排序的整數數組和兩個數字nm 程序必須檢查nm在數組中是否彼此相鄰(以任何順序)。

輸入數據格式

  • 第一行包含數組的大小
  • 第二行包含數組的元素
  • 第三行包含兩個 integer 數字nm

同一行中的所有數字都由空格字符分隔。

Output數據格式

只有一個值: 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);
    }
}

誠實的問題,我正在研究這個問題並嘗試更簡潔的解決方案。 為什么這段代碼不起作用? 如果測試是,它會保持打印真實

3

1 2 3

3 2

            if ((table[i+1] == m)  || (table[i-1] == m)) {
                System.out.println("false");
                return;
                
            }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM