• Leetcode题库——48.旋转图像



    @author: ZZQ
    @software: PyCharm
    @file: rotate.py
    @time: 2018/11/16 15:41
    要求:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。
    说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。
    示例 1:
    给定 matrix =
    [
    [1,2,3],
    [4,5,6],
    [7,8,9]
    ],

    原地旋转输入矩阵,使其变为:
    [
    [7,4,1],
    [8,5,2],
    [9,6,3]
    ]
    示例 2:

    给定 matrix =
    [
    [ 5, 1, 9,11],
    [ 2, 4, 8,10],
    [13, 3, 6, 7],
    [15,14,12,16]
    ],

    原地旋转输入矩阵,使其变为:
    [
    [15,13, 2, 5],
    [14, 3, 4, 1],
    [12, 6, 8, 9],
    [16, 7,10,11]
    ]
    思路:经过观察以后发现,位于matrix[i][j]处的元素被移动到了matrix[j][row_len-i+1]处,所以先开辟新空间保存原来的矩阵,然后再将所有的元素位置进行修改即可。

    
    class Solution():
        def __init__(self):
            pass
    
        def rotate(self, matrix):
                """
                :type matrix: List[List[int]]
                :rtype: void Do not return anything, modify matrix in-place instead.
                """
                row_len = len(matrix[0])
                b = []
                for i in range(row_len):
                    temp_b = []
                    for j in range(row_len):
                        temp_b.append(matrix[i][j])
                    b.append(temp_b)
    
                for i in range(row_len):
                    for j in range(row_len):
                        matrix[j][row_len - i - 1] = b[i][j]
                return matrix
    
  • 相关阅读:
    操作系统
    redis
    数据库原理与mysql
    计算机网络
    重写、重载、隐藏以及多态分析
    c++复习重点
    重装系统记录
    正则表达式匹配ip地址
    信号量和互斥锁的区别 互斥量与临界区的区别
    为Markdown文件生成目录
  • 原文地址:https://www.cnblogs.com/zzq-123456/p/9969883.html
Copyright © 2020-2023  润新知