好的,以下是一个Java代码示例,用于解决您描述的问题: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int n = scanner.nextInt(); int[][] arr = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { arr[i][j] = scanner.nextInt(); } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { boolean isPeak = true; for (int k = -1; k <= 1; k++) { for (int l = -1; l <= 1; l++) { if (i + k >= 0 && i + k < n && j + l >= 0 && j + l < n && arr[i][j] < arr[i + k][j + l]) { isPeak = false; break; } } } if (isPeak) { System.out.print(arr[i][j] + " "); } } System.out.println(); } } } } ``` 这段代码首先读取数组的大小N,然后读取N行N列的2D数组。接着,对于数组中的每个元素,它检查该元素是否大于其左上、上、右上、左、右、左下、下、右下的值。如果是,则将其打印出来。最后,每组输出之后加换行符。
点赞 评论

相关推荐

牛客网
牛客企业服务