54.螺旋矩阵
class solution:
def spiralOrder(self, matrix: List[List[int]]) -> List[int]:
if not matrix: return []
res = matrix[0]
matrix = [list(x) for x in zip(*matrix[1:])][::-1]
res += self.spiralOrder(matrix)
return res
59.螺旋矩阵||
class Solution:
def generateMatrix(self, n: int) -> List[List[int]]:
#思路,先创建好,再赋值(按照顺时针访问矩阵一样的方法))
if n==0:
return []
Matrix=[[0 for j in range(n)]for i in range(n)]
vis=[[0 for j in range(n)]for i in range(n)]
i=0
j=0 #i行 j列
vis[0][0]=1
Matrix[0][0]=1
cur=2
dx=[0,1,0,-1]#加到行上
dy=[1,0,-1,0]#加到列上
k=0
while cur<=n*n:
if vis[(i+dx[k])%n][(j+dy[k])%n]==0:
i=(i+dx[k])%n
j=(j+dy[k])%n
vis[i][j]=1
Matrix[i][j]=cur
cur+=1
else:
k+=1
k=k%4
return Matrix
61.旋转链表
class Solution(object):
def rotateRight(self, head, k):
if head is None or head.next is None: return head
start, end, len = head, None, 0
while head:
end = head
head = head.next
len += 1
end.next = start
pos = len - k % len
while pos > 1:
start = start.next
pos -= 1
ret = start.next
start.next = None
return ret