2021-01-18

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值