常见的二维数组模式
本课属于 Coddy Java 学习旅程的“逻辑与流程”单元。第 8 课,共 59 课。
处理二维数组时,经常会遇到某些模式。识别这些模式可以帮助你更高效地解决问题。以下是几种常见模式:
对角线遍历
访问行索引等于列索引的元素(matrix[i][i]),就能得到主对角线。对于副对角线,行索引和列索引之和等于数组大小减 1(matrix[i][size - 1 - i])。
例如:
1 2 3
4 5 6
7 8 9遍历主对角线(matrix[i][i]):1,5,9
遍历副对角线(matrix[i][size - 1 - i]):3,5,7
边界遍历
要遍历边界元素,你需要在遍历另一个索引时,保持一个索引不变(0 或 size - 1)。
要访问顶部边框,你需要固定行索引为 0,并遍历各列。
例如:
1 2 3 4
5 6 7 8
9 10 11 12边界元素:1、2、3、4、8、12、11、10、9、5(除了 6 和 7)
挑战
简单创建一个名为 printPatterns 的方法,它接收一个方形的二维整数数组(matrix)作为输入,并打印以下图案:
- 主对角线:打印行索引等于列索引的所有元素。
- 副对角线:打印行索引与列索引之和等于矩阵大小减 1 的所有元素。
- 边框:打印矩阵上、下、左、右边框的元素。
输出应如下所示:
Main Diagonal: 1 6 11 16
Anti-Diagonal: 4 7 10 13
Top Border: 1 2 3 4
Bottom Border: 13 14 15 16
Left Border: 1 5 9 13
Right Border: 4 8 12 16亲手试试
// 只在类内部编写代码。不要编写 main(),也不要在这个类外部编写任何代码。
class PrintPatterns {
public static void printPatterns(int[][] matrix) {
// 在这里编写你的代码
}
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Java 在线编译器