请输入一个n代表数组的长度,接下来输入n个数字表示每个数组下标的数字,接下来判断这个数组是否存在2个长度为2的子数组,如果存在返回true,如果不存在返回false。Java代码怎么写
时间: 2024-05-31 19:07:57 浏览: 86
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] nums = new int[n];
for (int i = 0; i < n; i++) {
nums[i] = scanner.nextInt();
}
boolean result = hasTwoSubarrays(nums);
System.out.println(result);
}
public static boolean hasTwoSubarrays(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
if (map.containsKey(nums[i])) {
int index = map.get(nums[i]);
if (i - index > 1) {
return true;
}
} else {
map.put(nums[i], i);
}
}
return false;
}
}
阅读全文