LeetCode 48. 旋转图像

2022-08-25  本文已影响0人  草莓桃子酪酪
题目

给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

例:
输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]
输出:[[7,4,1],[8,5,2],[9,6,3]]

方法一:辅助函数
class Solution(object):
    def rotate(self, matrix):
        n = len(matrix)
        temp = [[0] * n for row in range(n)]
        for i in range(n):
            for j in range(n):
                temp[j][n-i-1] = matrix[i][j]
        matrix[:] = temp

此方法不合题意

方法二:翻转
class Solution(object):
    def rotate(self, matrix):
        n = len(matrix)
        for i in range(n//2):
            for j in range(n):
                matrix[i][j], matrix[n-i-1][j] = matrix[n-i-1][j], matrix[i][j]
        for i in range(n):
            for j in range(i):
                matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]

具体例子见链接

相关知识
参考

代码相关:https://leetcode.cn/problems/rotate-image/solution/xuan-zhuan-tu-xiang-by-leetcode-solution-vu3m/
拷贝:https://blog.csdn.net/xiaoma_bk/article/details/121466987

上一篇 下一篇

猜你喜欢

热点阅读