题目:
题目链接; https://leetcode-cn.com/problems/rotate-image/
解题思路:
如下图,如果按照蓝色箭头直接转换,可能会导致思路有点复杂
所以可以添加一个中间步骤,即红色箭头的流程,思路立马会清晰很多
代码实现:
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
for i in range(0, len(matrix)):
for j in range(i, len(matrix[i])):
matrix[i][j], matrix[j][i] = matrix[j][i], matrix[i][j]
for i in range(0, len(matrix)):
matrix[i].reverse()
再来一个学py的理由(出自官方题解中George的评论,学会了还有个zip库函数):
class Solution:
def rotate(self, matrix: List[List[int]]) -> None:
"""
Do not return anything, modify matrix in-place instead.
"""
matrix[:] = map(list,zip(*matrix[::-1]))