码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 每日一题 48. 旋转图像

时间:2020-05-30 12:57:18      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:pre   元素   src   image   code   矩阵   sel   ever   lis   

技术图片

技术图片

转置加翻转

思路:

先把矩阵转置,然后把每一行元素翻转。即遍历元素,交换matrix[i][j]和matrix[j][i],然后翻转每一个子数组。

代码:

 

class Solution:
    def rotate(self, matrix: List[List[int]]) -> None:
        """
        Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix)
        for i in range(n):
            for j in range(i,n):
                matrix[j][i],matrix[i][j] = matrix[i][j],matrix[j][i]
        for i in range(n):
            matrix[i].reverse()

遍历旋转

思路:

遍历交换4条边上的元素。

技术图片

代码:

class Solution:
    def rotate(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: void Do not return anything, modify matrix in-place instead.
        """
        n = len(matrix[0])        
        for i in range(n // 2 + n % 2):
            for j in range(n // 2):
                tmp = matrix[n - 1 - j][i]
                matrix[n - 1 - j][i] = matrix[n - 1 - i][n - j - 1]
                matrix[n - 1 - i][n - j - 1] = matrix[j][n - 1 -i]
                matrix[j][n - 1 - i] = matrix[i][j]
                matrix[i][j] = tmp

 

leetcode 每日一题 48. 旋转图像

标签:pre   元素   src   image   code   矩阵   sel   ever   lis   

原文地址:https://www.cnblogs.com/nilhxzcode/p/12991714.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!