https://leetcode-cn.com/problems/spiral-matrix-ii/
# -*- coding:utf-8 -*-
class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
def get_num():
res = num_list[-1]
num_list.remove(res)
return res
num_list = [i for i in range(1, n * n + 1)]
res_list = [[get_num()]]
for i in range(2 * n - 2):
temp_list = []
# 加
for j in range(len(res_list[0])):
temp_list.insert(0, get_num())
res_list.insert(0, temp_list)
if len(num_list) == 0:
return res_list
# 翻
temp_iter = res_list.__iter__()
res_list = [i for i in zip(*temp_iter)]
# 倒
for j in range(len(res_list)):
res_list[j] = res_list[j][::-1]
return res_list
if __name__ == '__main__':
n = 1
print(Solution().generateMatrix(n))
思路:0054的逆过程,0054的思路是截取、倒转、翻转。因此在这里我们就需要进行加、翻转、倒转。

0 条评论