实际上,任务是:数组中不应有两个相邻的数字。
在“数据输入”块中,我们收集数组的长度,在数组中输入数字,并输入两个不应相邻的数字。
在“检查”块中,我检查这两个数字是否相邻。
一般来说,代码通过了所有检查,但在最后一次测试中,它给出了错误:“ java.lang.ArrayIndexOutOfBoundsException:索引 -1 超出长度 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);
}
}