📌  相关文章
📜  Python3程序通过顺时针方向将第i行精确旋转i次来修改矩阵

📅  最后修改于: 2022-05-13 01:54:27.105000             🧑  作者: Mango

Python3程序通过顺时针方向将第i行精确旋转i次来修改矩阵

给定一个维度为M * N的矩阵mat[][] ,任务是打印矩阵的每第 i行按顺时针方向旋转i次后获得的矩阵。

例子:

解决方法:按照以下步骤解决问题:

  • 以行方式遍历给定的矩阵,并且对于每第 i,执行以下步骤:
    • 反转矩阵的当前行。
    • 反转当前行的前i个元素。
    • 反转当前行的最后(N – i)个元素,其中N是行的当前大小。
  • 完成上述步骤后,打印矩阵mat[][]

下面是上述方法的实现:

Python3
# Python3 program for the above approach
  
# Function to rotate every i-th
# row of the matrix i times
def rotateMatrix(mat):
      
    i = 0
    mat1 = []
  
    # Traverse the matrix row-wise
    for it in mat:
  
        # Reverse the current row
        it.reverse()
  
        # Reverse the first i elements
        it1 = it[:i]
        it1.reverse()
  
        # Reverse the last (N - i) elements
        it2 = it[i:]
        it2.reverse()
  
        # Increment count
        i += 1
        mat1.append(it1 + it2)
  
    # Print final matrix
    for rows in mat1:
        for cols in rows:
            print(cols, end = " ")
  
        print()
  
# Driver Code
if __name__ == "__main__":
  
    mat = [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ]
      
    rotateMatrix(mat)
  
# This code is contributed by ukasp


输出:
1 2 3 
6 4 5 
8 9 7

时间复杂度: O(M * N)
辅助空间: O(1)

有关详细信息,请参阅有关通过顺时针方向将第 i 行精确旋转 i 次来修改矩阵的完整文章!