"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Gire facilmente uma matriz no lugar: um guia abrangente

Gire facilmente uma matriz no lugar: um guia abrangente

Publicado em 31/10/2024
Navegar:449

Effortlessly Rotate a Matrix in Place: A Comprehensive Guide

Girar uma matriz 90 graus no sentido horário é um problema comum em ciência da computação e entrevistas técnicas. Este problema pode ser particularmente interessante porque o objetivo é realizar a rotação no local, sem utilizar memória adicional para uma nova matriz. Neste guia, exploraremos como conseguir isso com uma explicação clara e um exemplo de código.


Descrição do problema

Você recebe uma matriz 2D n x n A representando uma imagem. Sua tarefa é girar a imagem no sentido horário em 90 graus no lugar. Se você usar uma matriz adicional, receberá apenas crédito parcial.

Restrições do problema

1≤n≤1000

Formato de entrada

Uma matriz 2D A de inteiros

Formato de saída

A matriz girada 2D

Exemplo de entrada

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

Exemplo de saída

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

Exemplo de explicação

Depois de girar a matriz em 90 graus:

  • 1 vai para a posição 2
  • 2 vai para a posição 4
  • 4 vai para a posição 3
  • 3 vai para a posição 1

Solução passo a passo

Passo 1: Transpor a Matriz

  • Transpor uma matriz significa converter suas linhas em colunas e colunas em linhas. Isso pode ser feito trocando elementos na diagonal principal (diagonal superior esquerda para inferior direita).

Etapa 2: inverter cada linha

  • Depois que a matriz for transposta, o próximo passo é inverter cada linha. Isso irá efetivamente girar a matriz em 90 graus no sentido horário.

Código de exemplo

Aqui está uma função JavaScript para realizar a rotação:

function rotateMatrix(A) {
    const n = A.length;

    // Step 1: Transpose the matrix
    for (let i = 0; i 





Explicação do Código

Transponha a Matriz:

  • Percorra a matriz usando dois loops aninhados.
  • Troque os elementos A[i][j] e A[j][i] para transpor a matriz.

Inverta cada linha:

  • Use o método reverse() integrado para reverter cada linha na matriz transposta.

Retorne a matriz girada:

  • Depois de transpor e reverter cada linha, a matriz é girada 90 graus no sentido horário.

Conclusão

Girar uma matriz no local é uma habilidade valiosa que mostra sua compreensão da manipulação de matrizes e algoritmos no local. Ao transpor a matriz e depois inverter cada linha, você pode obter a rotação desejada sem usar espaço extra. Pratique este método para aprimorar suas habilidades de resolução de problemas em entrevistas técnicas e desafios de codificação.

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/imkrunalkanojiya/effortlessly-rotate-a-matrix-in-place-a-comprehensive-guide-251j?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3