JavaScript程式:將矩陣向右旋轉K次
“將矩陣向右旋轉”是指將矩陣中的每一列向右移動。如果指定了“k”值,則此操作將重複“k”次。換句話說,這是矩陣向右移動k次的迴圈右移。此程式可以使用多種程式語言實現,但一種簡單而有效的方法是考慮使用JavaScript將矩陣向右旋轉k次。
如何將矩陣向右旋轉K次?
將矩陣向右旋轉k次很簡單,這涉及到將矩陣的每一列向右移動k次。為了演示這一點,讓我們使用一個示例手動將矩陣向右旋轉k次。
示例
讓我們取一個大小為N*M的矩陣和一個數字K。我們必須將矩陣向右旋轉k次。
Input matrix: N = 4, M = 4, K = 3 1 2 3 4 6 7 8 9 0 9 8 7 5 4 3 2 Output matrix: 4 1 2 3 9 6 7 8 7 0 9 8 2 5 4 3
方法
執行k次向右旋轉的過程似乎很容易理解,但實現起來可能有點挑戰。此方法包括將第i行每一列的元素複製到臨時陣列中,直到m-k。然後,我們將元素從k到末尾轉移到第i行的開頭。最後,我們將元素從臨時陣列複製回矩陣的每個第i行的末尾。
讓我們看看我們將要使用的演算法。
將矩陣向右旋轉K次的演算法
步驟1 -確定矩陣的行數和列數。
步驟2 -根據k的值計算每一行需要移動的次數。可以使用模運算子(%)。
步驟3 -對於矩陣中的每一行,建立一個包含需要移動的元素的新陣列。
步驟4 -使用splice()方法從原始行中移除移動的元素,並將它們新增到新行的開頭。
步驟5 -將原始行設定為新行。
步驟6 -對矩陣中的每一行重複步驟3-5。
示例
在這個程式中,我們定義了一個MatrixRotation類,它有兩個靜態方法:displayMatrix()和rotateMatrixRight()。
displayMatrix()方法接收一個矩陣作為輸入並在控制檯中顯示它。它使用for迴圈迭代矩陣中的每一行,並將它們記錄到控制檯中。
rotateMatrixRight()方法接收一個矩陣和一個數字k作為輸入,並返回一個向右旋轉k個位置的新矩陣。它使用與前面答案中相同的演算法來執行旋轉。
在示例使用方法程式碼中,我們定義了一個輸入矩陣和k的值,然後呼叫rotateMatrixRight()方法執行旋轉。我們使用displayMatrix()方法顯示輸入和輸出矩陣。
class MatrixRotation {
static displayMatrix(matrix) {
for (let i = 0; i < matrix.length; i++) {
console.log(matrix[i]);
}
}
static rotateMatrixRight(matrix, k) {
const numRows = matrix.length;
const numCols = matrix[0].length;
// Calculate the number of times each row needs to be shifted
const shifts = k % numCols;
// Rotate each row of the matrix
for (let i = 0; i < numRows; i++) {
const row = matrix[i];
// Create a new row that contains the shifted elements
const newRow = row.slice(numCols - shifts).concat(row.slice(0, numCols - shifts));
// Set the original row to the new row
matrix[i] = newRow;
}
return matrix;
}
}
// Example usage
const inputMatrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
const k = 2;
console.log("Input matrix:");
MatrixRotation.displayMatrix(inputMatrix);
const outputMatrix = MatrixRotation.rotateMatrixRight(inputMatrix, k);
console.log("Output matrix:");
MatrixRotation.displayMatrix(outputMatrix);
結論
可以使用JavaScript中的幾個簡單步驟實現將矩陣向右旋轉k次。第一步是確定矩陣的行數和列數。下一步是根據k的值計算每一行需要向右移動的次數。一旦確定了移動次數,程式就可以迭代矩陣的每一行,建立一個包含從原始行移動的元素的新陣列,並使用移動的元素更新原始行。透過遵循這些步驟,我們可以使用JavaScript將矩陣向右旋轉k次。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP