您的位置:首页 > 其它

62 leetcode - Spiral Matrix II

2016-12-26 18:19 447 查看
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
Spiral Matrix II
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order.
For example,
Given n = 3,
You should return the following matrix:
[
[ 1, 2, 3 ],
[ 8, 9, 4 ],
[ 7, 6, 5 ]
]
'''
class Solution(object):
def generateMatrix(self, n):
"""
:type n: int
:rtype: List[List[int]]
"""
if n == 0:
return []
matrix = [[None] * n for i in range(n)]
up = left = 0
down = right = n - 1
nums = 1
while down >= up and left <= right:
col = left
while col <= right:
matrix[up][col] = nums
nums += 1
col += 1
up += 1

row = up
while row <= down:
matrix[row][right] = nums
nums += 1
row += 1
right -= 1

col = right
while col >= left:
matrix[down][col] = nums
nums += 1
col -= 1
down -= 1

row = down
while row >= up:
matrix[row][left] = nums
nums += 1
row -= 1
left += 1

return matrix

if __name__ == "__main__":
s = Solution()
print s.generateMatrix(1)
print s.generateMatrix(2)
print s.generateMatrix(3)
print s.generateMatrix(4)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: