Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โปรแกรม Java พิมพ์ Matrix แบบ Z Shape

โจทย์: พิมพ์องค์ประกอบของ 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) - ไม่ใช้พื้นที่เพิ่ม