首頁 web前端 js教程 輕鬆就位旋轉矩陣:綜合指南

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

Jul 24, 2024 pm 05:47 PM

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 < 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));
登入後複製

守則解釋

轉置矩陣:

  • 使用兩個巢狀迴圈遍歷矩陣。
  • 交換元素 A[i][j] 和 A[j][i] 以轉置矩陣。

反轉每一行:

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

返迴旋轉矩陣:

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

結論

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

以上是輕鬆就位旋轉矩陣:綜合指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在JavaScript中替換字符串字符 在JavaScript中替換字符串字符 Mar 11, 2025 am 12:07 AM

在JavaScript中替換字符串字符

jQuery獲取元素填充/保證金 jQuery獲取元素填充/保證金 Mar 01, 2025 am 08:53 AM

jQuery獲取元素填充/保證金

jQuery檢查日期是否有效 jQuery檢查日期是否有效 Mar 01, 2025 am 08:51 AM

jQuery檢查日期是否有效

10個jQuery手風琴選項卡 10個jQuery手風琴選項卡 Mar 01, 2025 am 01:34 AM

10個jQuery手風琴選項卡

10值得檢查jQuery插件 10值得檢查jQuery插件 Mar 01, 2025 am 01:29 AM

10值得檢查jQuery插件

HTTP與節點和HTTP-Console調試 HTTP與節點和HTTP-Console調試 Mar 01, 2025 am 01:37 AM

HTTP與節點和HTTP-Console調試

自定義Google搜索API設置教程 自定義Google搜索API設置教程 Mar 04, 2025 am 01:06 AM

自定義Google搜索API設置教程

jQuery添加捲軸到Div jQuery添加捲軸到Div Mar 01, 2025 am 01:30 AM

jQuery添加捲軸到Div

See all articles