โจทย์: พิมพ์องค์ประกอบของ matrix ตามรูป Z
ลำดับ: แถวแรก (ซ้าย→ขวา) → แนวทแยงมุม (ขวาบน→ซ้ายล่าง) → แถวสุดท้าย (ซ้าย→ขวา)
ตัวอย่างโค้ด
public class Demo {
public static void zShape(int[][] matrix, int n) {
// 1. แถวแรก
for (int j = 0; j < n; j++) {
System.out.print(matrix[0][j] + " ");
}
// 2. แนวทแยงมุม (ไม่นับมุมซ้ำ)
for (int i = 1; i < n - 1; i++) {
System.out.print(matrix[i][n - 1 - i] + " ");
}
// 3. แถวสุดท้าย
if (n > 1) {
for (int j = 0; j < n; j++) {
System.out.print(matrix[n - 1][j] + " ");
}
}
System.out.println();
}
public static void main(String[] args) {
int[][] matrix = {
{34, 67, 89, 0},
{0, 1, 0, 1},
{56, 99, 102, 21},
{78, 61, 40, 99}
};
System.out.println("The matrix is:");
zShape(matrix, 4);
}
}
ผลลัพธ์
The matrix is: 34 67 89 0 1 99 78 61 40 99
คำอธิบาย: Matrix 4×4 พิมพ์ตาม Z: แถว 0 (34,67,89,0) → ทแยง (1, 99) → แถว 3 (78,61,40,99)
Complexity
- Time: O(n) - แตะแต่ละองค์ประกอบใน Z เพียงครั้งเดียว
- Space: O(1) - ไม่ใช้พื้นที่เพิ่ม