La rotation d'une matrice de 90 degrés dans le sens des aiguilles d'une montre est un problème courant en informatique et lors des entretiens techniques. Ce problème peut être particulièrement intéressant car le but est d'effectuer la rotation sur place, sans utiliser de mémoire supplémentaire pour une nouvelle matrice. Dans ce guide, nous explorerons comment y parvenir avec une explication claire et un exemple de code.
On vous donne une matrice 2D n x n A représentant une image. Votre tâche consiste à faire pivoter l'image dans le sens des aiguilles d'une montre à 90 degrés sur place. Si vous utilisez une baie supplémentaire, vous ne recevrez qu'un crédit partiel.
1≤n≤1000
Une matrice 2D A d'entiers
La matrice pivotée 2D
[ [1, 2], [3, 4] ]
[ [3, 1], [4, 2] ]
Après avoir fait pivoter la matrice de 90 degrés :
Voici une fonction JavaScript pour effectuer la rotation :
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));
La rotation d'une matrice sur place est une compétence précieuse qui met en valeur votre compréhension de la manipulation des tableaux et des algorithmes sur place. En transposant la matrice puis en inversant chaque ligne, vous pouvez obtenir la rotation souhaitée sans utiliser d'espace supplémentaire. Pratiquez cette méthode pour améliorer vos capacités de résolution de problèmes lors des entretiens techniques et des défis de codage.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!