虽然code不是那么优美,或者在代码上还有优化的地方,毕竟是完全靠自己写的,再简洁的答案,如果不是自己亲手写的,效果并不大。而且这题显然也没有什么时间空间好优化的地方。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
class (object): def generateMatrix(self, n): """ :type n: int :rtype: List[List[int]] """ if n == 0: return [] res = [[0 for _ in range(n)] for _ in range(n)] tr = lc = 0 br = rc = n - 1 num = 1 while num <= n**2: if num <= n**2: for i in range(lc, rc+1): res[tr][i] = num num += 1 tr += 1 if num <= n**2: for i in range(tr, br+1): res[i][rc] = num num += 1 rc -= 1 if num <= n**2: for i in range(rc, lc-1, -1): res[br][i] = num num += 1 br -= 1 if num <= n**2: for i in range(br, tr-1, -1): res[i][lc] = num num += 1 lc += 1 return res
|
近期评论