#给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,
#将图像旋转 90 度。
#不占用额外内存空间能否做到?
class Solution(object):
def swap(self, matrix, i, j):
temp = matrix[i][j]
matrix[i][j] = matrix[j][i]
matrix[j][i] = temp
def rotate(self, matrix):
"""
:type matrix: List[List[int]]
:rtype: None Do not return anything, modify matrix in-place instead.
"""
if not matrix:
return matrix
row_number = len(matrix)
col_number = len(matrix[0])
# 先上下对称翻转
s = 0
e = row_number - 1
while s < e:
temp = matrix[s]
matrix[s] = matrix[e]
matrix[e] = temp
s += 1
e -= 1
print(matrix)
# 再沿主对角线翻转 0,1 1,0 0,2 1,1 2,0 0,3 1,2 2,1 3,0 0,4 2,2 4,0
for i in range(row_number):
# i: 0->row_number-1 j: i+1->col_number-1
# 0,1 0,2, 0,3, 0,4\ 1,2 1,3 1,4 \ 2,3 2,4 \ 3,4
for j in range(i+1, col_number):
self.swap(matrix, i, j)
return matrix
leetcode 48.旋转矩阵
最新推荐文章于 2024-07-24 22:13:06 发布