How to rotate square matrix 90 degrees to the left in VB.NET

1 Answer

0 votes
Imports System

Public Class Test
    Public Shared Sub print_matrix(matrix(,) As Integer) 
        For i As Integer = 0 To matrix.GetLength(0) - 1
            For j As Integer = 0 To matrix.GetLength(1) - 1
               Console.Write("{0, 2}", matrix(i, j))
            Next 
            Console.WriteLine()
        Next 
        Console.WriteLine()
    End Sub 
  
    Public Shared Sub rotate_matrix_90_degrees_left(matrix(,) As Integer)  
        Dim len As Integer = matrix.GetLength(0)
        For i As Integer = 0 To matrix.GetLength(0) / 2 - 1
            For j As Integer = i To matrix.GetLength(1) - i - 1 - 1
                Dim tmp As Integer = matrix(i, j) 
                matrix(i, j) = matrix(j, len - 1 - i)
                matrix(j, len - 1 - i) = matrix(len - 1 - i, len - 1 - j)
                matrix(len - 1 - i, len - 1 - j) = matrix(len - 1 - j, i)
                matrix(len - 1 - j, i) = tmp
            Next  
        Next
    End Sub 
    
    Public Shared Sub Main()
        Dim matrix(,) As Integer = New Integer(,) { {1, 2, 3}, 
                                                    {4, 5, 6}, 
                                                    {7, 8, 9} }
        rotate_matrix_90_degrees_left(matrix) 
        
        print_matrix(matrix) 
    End Sub
End Class



' run:
' 
'  3 6 9
'  2 5 8
'  1 4 7

 



answered May 18, 2019 by avibootz
edited May 19, 2019 by avibootz

Related questions

...