Heim  >  Artikel  >  Web-Frontend  >  Drehen Sie eine Matrix mühelos an Ort und Stelle: Eine umfassende Anleitung

Drehen Sie eine Matrix mühelos an Ort und Stelle: Eine umfassende Anleitung

WBOY
WBOYOriginal
2024-07-24 17:47:291014Durchsuche

Effortlessly Rotate a Matrix in Place: A Comprehensive Guide

Das Drehen einer Matrix um 90 Grad im Uhrzeigersinn ist ein häufiges Problem in Informatik und technischen Interviews. Dieses Problem kann besonders interessant sein, da das Ziel darin besteht, die Rotation an Ort und Stelle durchzuführen, ohne zusätzlichen Speicher für eine neue Matrix zu verbrauchen. In diesem Leitfaden werden wir anhand einer klaren Erklärung und eines Beispielcodes untersuchen, wie dies erreicht werden kann.


Problembeschreibung

Sie erhalten eine n x n 2D-Matrix A, die ein Bild darstellt. Ihre Aufgabe besteht darin, das Bild im Uhrzeigersinn um 90 Grad zu drehen. Wenn Sie ein zusätzliches Array nutzen, erhalten Sie nur eine Teilgutschrift.

Problembeschränkungen

1≤n≤1000

Eingabeformat

Eine 2D-Matrix A aus ganzen Zahlen

Ausgabeformat

Die 2D-gedrehte Matrix

Beispieleingabe

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

Beispielausgabe

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

Beispielerklärung

Nachdem die Matrix um 90 Grad gedreht wurde:

  • 1 geht auf Position 2
  • 2 geht auf Position 4
  • 4 geht auf Position 3
  • 3 geht auf Position 1

Schritt-für-Schritt-Lösung

Schritt 1: Transponieren Sie die Matrix

  • Eine Matrix zu transponieren bedeutet, ihre Zeilen in Spalten und Spalten in Zeilen umzuwandeln. Dies kann durch Vertauschen von Elementen über die Hauptdiagonale (Diagonale von oben links nach unten rechts) erfolgen.

Schritt 2: Drehen Sie jede Zeile um

  • Sobald die Matrix transponiert ist, besteht der nächste Schritt darin, jede Zeile umzukehren. Dadurch wird die Matrix effektiv um 90 Grad im Uhrzeigersinn gedreht.

Beispielcode

Hier ist eine JavaScript-Funktion zum Durchführen der Drehung:

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));

Erläuterung des Kodex

Transponieren Sie die Matrix:

  • Durchlaufen Sie die Matrix mit zwei verschachtelten Schleifen.
  • Vertauschen Sie die Elemente A[i][j] und A[j][i], um die Matrix zu transponieren.

Jede Zeile umkehren:

  • Verwenden Sie die integrierte Methode reverse(), um jede Zeile in der transponierten Matrix umzukehren.

Geben Sie die gedrehte Matrix zurück:

  • Nach dem Transponieren und Umkehren jeder Zeile wird die Matrix um 90 Grad im Uhrzeigersinn gedreht.

Abschluss

Das Rotieren einer Matrix vor Ort ist eine wertvolle Fähigkeit, die Ihr Verständnis von Array-Manipulation und In-Place-Algorithmen unter Beweis stellt. Durch Transponieren der Matrix und anschließendes Umkehren jeder Zeile können Sie die gewünschte Drehung erreichen, ohne zusätzlichen Platz zu verbrauchen. Üben Sie diese Methode, um Ihre Fähigkeiten zur Problemlösung in technischen Interviews und bei Programmierherausforderungen zu verbessern.

Das obige ist der detaillierte Inhalt vonDrehen Sie eine Matrix mühelos an Ort und Stelle: Eine umfassende Anleitung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn