LeetCode--059--螺旋矩阵 II(python)

 

效率超级低,但是能过。。。。

 1 class Solution:
 2     def generateMatrix(self, n):
 3         tR = tC = 0
 4         dR = n-1
 5         dC = n-1
 6         x = [[0 for i in range(n)] for j in range(n)]
 7         nowNum=1
 8         while(tR <= dR and tC <=dC):
 9             nowNum = self.draw(tR,tC,dR,dC,x,nowNum)
10             tR+=1
11             tC+=1
12             dR-=1
13             dC-=1
14         return x
15     def draw(self,tR,tC,dR,dC,lists,nowNum):
16         i = tC
17         j = tR
18         flag = False
19         while(i<=dC):#往右
20             lists[tR][i]=nowNum
21             #print("{} {} {}".format(tR,i,nowNum))
22             nowNum+=1
23             i+=1
24         i-=1
25         j+=1
26         while(j<=dR):#往下
27             lists[j][dC]=nowNum
28 #             print("{} {} {}".format(j,dC,nowNum))
29             nowNum+=1
30             j+=1
31         j-=1
32         i-=1
33         if j == dR and dR != tR:
34             while(i >= tC):#往左
35                 lists[dR][i]=nowNum
36 #                 print("{} {} {}".format(dR,i,nowNum))
37                 nowNum+=1
38                 flag = True
39                 i-=1
40             i+=1
41         
42         if flag and i==tC:
43             j-=1
44             while(j >tR):#往上
45                 lists[j][tC]=nowNum
46                 #print("{} {} {}".format(j,tC,nowNum))
47                 nowNum+=1
48                 j-=1
49             j+=1
50         return nowNum

 

转载于:https://www.cnblogs.com/NPC-assange/p/11426760.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值