"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Faire pivoter sans effort une matrice en place : un guide complet

Faire pivoter sans effort une matrice en place : un guide complet

Publié le 2024-10-31
Parcourir:157

Effortlessly Rotate a Matrix in Place: A Comprehensive Guide

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.


Description du problème

Vous recevez 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.

Contraintes du problème

1≤n≤1000

Format d'entrée

Une matrice 2D A d'entiers

Format de sortie

La matrice pivotée 2D

Exemple d'entrée

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

Exemple de sortie

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

Exemple d'explication

Après avoir fait pivoter la matrice de 90 degrés :

  • 1 passe à la position 2
  • 2 passe à la position 4
  • 4 passe à la position 3
  • 3 passe à la position 1

Solution étape par étape

Étape 1 : Transposer la matrice

  • Transposer une matrice signifie convertir ses lignes en colonnes et ses colonnes en lignes. Cela peut être fait en échangeant des éléments sur la diagonale principale (diagonale supérieure gauche à inférieure droite).

Étape 2 : inverser chaque ligne

  • Une fois la matrice transposée, l'étape suivante consiste à inverser chaque ligne. Cela fera effectivement pivoter la matrice de 90 degrés dans le sens des aiguilles d'une montre.

Exemple de code

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 





Explication du Code

Transposez la matrice :

  • Parcourez la matrice à l'aide de deux boucles imbriquées.
  • Échangez les éléments A[i][j] et A[j][i] pour transposer la matrice.

Inversez chaque ligne :

  • Utilisez la méthode reverse() intégrée pour inverser chaque ligne de la matrice transposée.

Renvoyez la matrice pivotée :

  • Après avoir transposé et inversé chaque ligne, la matrice est tournée de 90 degrés dans le sens des aiguilles d'une montre.

Conclusion

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.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/imkrunalkanojiya/effortlessly-rotate-a-matrix-in-place-a-comprehensive-guide-251j?1 En cas de violation, veuillez contacter [email protected] pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3