輕鬆就位旋轉矩陣:綜合指南
Jul 24, 2024 pm 05:47 PM將矩陣順時針旋轉 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 DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱門文章
擊敗分裂小說需要多長時間?
3 週前
By DDD
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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