Leetcode 59.螺旋矩阵II

Leetcode 59.螺旋矩阵II

今天的题和昨天的一样,哈哈哈哈哈
参考大佬主页
如果这个不明白关注这个大佬,非常值得学习

思路

那今天就写一下大佬的的思路:
1、要考虑初始位置 (0,0)
2、移动的方向:上下左右,不过按照矩阵昨天画的图,从左上(0,0)往右移,
3、边界问题,是方阵,m = n; 如果是右边界,则right-1;下边界,down-1;左边界,left+1;上边界,up+1;

注:数字0标记边界;0可以代表我们已经遍历过了
4、结束,所有元素都被遍历一遍了

class Solution(Object):
	def generateMatrix(self,n):
		if n = 0:
			return []
		res = [[0]*n for i in range(n)]
		left,right,up,down = 0,n-1,0,n-1
		x,y = 0,0
		dirs = [(0,1),(1,0),(0,-1),(-1,0)]
		cur_d = 0
		count = 0
		while count ! = n*n:
			res[x][y] = count + 1
			count +=1
			if cur_d == 0 and y == right:
				cur_d +=1
				up +=1
			elif cur_d ==2 and y == left:
				cur_d +=1
				down -=1
			elif cur_d == 3 and x == up:
			 	cur_d +=1
			 	left +=1
			 cur_d %= 4
			 x += dirs[cur_d][0]
			 y += dirs[cur_d][1]
		return res
上一篇:Mysql的数据类型


下一篇:LeetCode——59. 螺旋矩阵 II(Spiral Matrix II)[中等]——分析及代码(Java)