[英]Iterating over arrays Check if an array contains two numbers
編寫一個程序,讀取一個未排序的整數數組和兩個數字n
和m
。 程序必須檢查n
和m
在數組中是否彼此相鄰(以任何順序)。
n
和m
。同一行中的所有數字都由空格字符分隔。
只有一個值: true
或false
。
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.