Leetcode刷题日记(2020.6.11):旋转矩阵
题目如下:
分析如下:
本题其实就是将矩阵进行旋转,因为我主要是研究CV的,所以对于这种坐标的转换很熟悉,看到后,我就用了自己常用的方法:
首先我们将矩阵进行上下交换,接着再将得到的新矩阵按照对脚线进行交换机可
代码如下:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 """ 4 # @Time : 2020/6/11 9:12 5 6 # @Author : ZFJ 7 8 # @File : 旋转矩阵.py 9 10 # @Software: PyCharm 11 """ 12 13 14 class Solution(object): 15 def rotate(self, matrix): 16 """ 17 本题是考察的矩阵的旋转,我们可以先将矩阵进行上下翻转,在进行矩阵沿着对角线交换 18 :type matrix: List[List[int]] 19 :rtype: None Do not return anything, modify matrix in-place instead. 20 """ 21 # 得到矩阵的行数 22 length = len(matrix) 23 # 首先进行上下翻转,即为二维数组中逆向切片 24 matrix[:] = matrix[::-1] 25 # 现在再将矩阵沿着对角线进行元素交换即可 26 for i in range(length): 27 for j in range(i): 28 matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]