Rumah  >  Artikel  >  hujung hadapan web  >  Putar Matriks di Tempatnya dengan Mudah: Panduan Komprehensif

Putar Matriks di Tempatnya dengan Mudah: Panduan Komprehensif

WBOY
WBOYasal
2024-07-24 17:47:291014semak imbas

Effortlessly Rotate a Matrix in Place: A Comprehensive Guide

Memusingkan matriks sebanyak 90 darjah mengikut arah jam ialah masalah biasa dalam temu bual sains komputer dan teknikal. Masalah ini boleh menjadi sangat menarik kerana matlamatnya adalah untuk melaksanakan putaran di tempatnya, tanpa menggunakan memori tambahan untuk matriks baharu. Dalam panduan ini, kami akan meneroka cara untuk mencapai ini dengan penerangan yang jelas dan kod contoh.


Huraian Masalah

Anda diberi n x n matriks 2D A yang mewakili imej. Tugas anda adalah untuk memutarkan imej mengikut arah jam pada 90 darjah di tempatnya. Jika anda menggunakan tatasusunan tambahan, anda hanya akan menerima kredit separa.

Kekangan Masalah

1≤n≤1000

Format Input

Matriks 2D A bagi integer

Format Output

Matriks berputar 2D

Contoh Input

[
    [1, 2],
    [3, 4]
]

Contoh Output

[
    [3, 1],
    [4, 2]
]

Contoh Penerangan

Selepas memutar matriks sebanyak 90 darjah:

  • 1 pergi ke kedudukan 2
  • 2 pergi ke kedudukan 4
  • 4 pergi ke kedudukan 3
  • 3 pergi ke kedudukan 1

Penyelesaian Langkah demi Langkah

Langkah 1: Transpose Matriks

  • Memindahkan matriks bermakna menukar barisnya kepada lajur dan lajur kepada baris. Ini boleh dilakukan dengan menukar elemen merentas pepenjuru utama (pepenjuru kiri atas ke bawah kanan).

Langkah 2: Songsang Setiap Baris

  • Setelah matriks ditukar, langkah seterusnya ialah membalikkan setiap baris. Ini dengan berkesan akan memutarkan matriks sebanyak 90 darjah mengikut arah jam.

Contoh Kod

Berikut ialah fungsi JavaScript untuk melaksanakan putaran:

function rotateMatrix(A) {
    const n = A.length;

    // Step 1: Transpose the matrix
    for (let i = 0; i < n; i++) {
        for (let j = i; j < n; j++) {
            let temp = A[i][j];
            A[i][j] = A[j][i];
            A[j][i] = temp;
        }
    }

    // Step 2: Reverse each row
    for (let i = 0; i < n; i++) {
        A[i].reverse();
    }

    return A;
}

// Example usage:
let matrix = [
    [1, 2],
    [3, 4]
];

console.log(rotateMatrix(matrix));

Penjelasan Kod

Transpose Matriks:

  • Gelung melalui matriks menggunakan dua gelung bersarang.
  • Tukar elemen A[i][j] dan A[j][i] untuk menukar matriks.

Songsang Setiap Baris:

  • Gunakan kaedah songsang() terbina dalam untuk menterbalikkan setiap baris dalam matriks terpindah.

Kembalikan Matriks Diputar:

  • Selepas menukar dan membalikkan setiap baris, matriks diputar sebanyak 90 darjah mengikut arah jam.

Kesimpulan

Memutar matriks pada tempatnya ialah kemahiran berharga yang mempamerkan pemahaman anda tentang manipulasi tatasusunan dan algoritma di tempat. Dengan mengalihkan matriks dan kemudian membalikkan setiap baris, anda boleh mencapai putaran yang diingini tanpa menggunakan ruang tambahan. Amalkan kaedah ini untuk meningkatkan kebolehan menyelesaikan masalah anda dalam temu duga teknikal dan cabaran pengekodan.

Atas ialah kandungan terperinci Putar Matriks di Tempatnya dengan Mudah: Panduan Komprehensif. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn