」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 輕鬆就位旋轉矩陣:綜合指南

輕鬆就位旋轉矩陣:綜合指南

發佈於2024-10-31
瀏覽:231

Effortlessly Rotate a Matrix in Place: A Comprehensive Guide

將矩陣順時針旋轉90度是電腦科學與技術面試中的常見問題。這個問題可能特別有趣,因為目標是就地執行旋轉,而不為新矩陣使用額外的記憶體。在本指南中,我們將透過清晰的解釋和範例程式碼探索如何實現這一目標。


問題描述

給你一個代表圖像的 n x n 2D 矩陣 A。您的任務是將影像順時針旋轉 90 度。如果您使用額外的陣列,您將僅獲得部分積分。

問題約束

1≤n≤1000

輸入格式

整數的二維矩陣 A

輸出格式

二維旋轉矩陣

輸入範例

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

範例輸出

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

範例說明

矩陣旋轉90度後:

  • 1 前往位置 2
  • 2 前往位置 4
  • 4 前往位置 3
  • 3 前往位置 1

逐步解決方案

第 1 步:轉置矩陣

  • 轉置矩陣意味著將其行轉換為列,將列轉換為行。這可以透過交換主對角線(左上角到右下角)的元素來完成。

第 2 步:反轉每一行

  • 矩陣轉置後,下一步就是反轉每一行。這將有效地將矩陣順時針旋轉 90 度。

範例程式碼

這是一個執行旋轉的 JavaScript 函數:

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

    // Step 1: Transpose the matrix
    for (let i = 0; i 





守則解釋

轉置矩陣:

  • 使用兩個嵌套循環遍歷矩陣。
  • 交換元素 A[i][j] 和 A[j][i] 以轉置矩陣。

反轉每一行:

  • 使用內建的reverse()方法反轉轉置矩陣中的每一行。

返迴旋轉矩陣:

  • 每一行轉置反轉後,矩陣順時針旋轉90度。

結論

就地旋轉矩陣是一項寶貴的技能,可以展示您對數組操作和就地演算法的理解。透過轉置矩陣,然後反轉每一行,您可以在不使用額外空間的情況下實現所需的旋轉。練習這種方法可以增強您在技術面試和編碼挑戰中解決問題的能力。

版本聲明 本文轉載於:https://dev.to/imkrunalkanojiya/effortlessly-rotate-a-matrix-in-place-a-comprehensive-guide-251j?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3