美文网首页
48. Rotate Image

48. Rotate Image

作者: poteman | 来源:发表于2019-07-23 20:17 被阅读0次
class Solution(object):
    def rotate(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: None Do not return anything, modify matrix in-place instead.
        """
        # 思路:控制起始点和边长
        # while循环side > 0
        # 根据起始点和边长先获得四个角的位置
        # 内层循环for i in range(s)
        # 通过i和四个角的关系获得这一次要交换的四个位置
        # 更新起始点和边长

        if len(matrix) <= 1:
            return matrix
        n = len(matrix)
        s = n - 1
        x, y = 0, 0

        while s > 0:
            l1 = [x, y]
            l2 = [x, y + s]
            l3 = [x + s, y + s]
            l4 = [x + s, y]

            for i in range(s):
                t1 = matrix[l1[0]][l1[1] + i]
                t2 = matrix[l2[0] + i][l2[1]]
                t3 = matrix[l3[0]][l3[1] - i]
                t4 = matrix[l4[0] - i][l4[1]]

                matrix[l2[0] + i][l2[1]],matrix[l3[0]][l3[1] - i],matrix[l4[0] - i][l4[1]],matrix[l1[0]][l1[1] + i] = t1, t2, t3, t4

            s -= 2
            x += 1
            y += 1

        return matrix

s = Solution()
res = s.rotate([[1,2,3],[4,5,6],[7,8,9]])
print(res)

相关文章

网友评论

      本文标题:48. Rotate Image

      本文链接:https://www.haomeiwen.com/subject/lufzlctx.html