[leetcode] 885. Spiral Matrix III

网友投稿 243 2022-09-14

[leetcode] 885. Spiral Matrix III

Description

On a 2 dimensional grid with R rows and C columns, we start at (r0, c0) facing east.

Here, the north-west corner of the grid is at the first row and column, and the south-east corner of the grid is at the last row and column.

Now, we walk in a clockwise spiral shape to visit every position in this grid.

Whenever we would move outside the boundary of the grid, we continue our walk outside the grid (but may return to the grid boundary later.)

Eventually, we reach all R * C spaces of the grid.

Return a list of coordinates representing the positions of the grid in the order they were visited.

Example 1:

Input: R = 1, C = 4, r0 = 0, c0 = 0Output: [[0,0],[0,1],[0,2],[0,3]]

Example 2:

Input: R = 5, C = 6, r0 = 1, c0 = 4Output: [[1,4],[1,5],[2,5],[2,4],[2,3],[1,3],[0,3],[0,4],[0,5],[3,5],[3,4],[3,3],[3,2],[2,2],[1,2],[0,2],[4,5],[4,4],[4,3],[4,2],[4,1],[3,1],[2,1],[1,1],[0,1],[4,0],[3,0],[2,0],[1,0],[0,0]]

Note:

1 <= R <= 1001 <= C <= 1000 <= r0 < R0 <= c0 < C

分析

题目的意思是:从指定位置遍历螺旋矩阵。这道题我一开始想复杂了,后面发现挺简单的,按照题目的要求从指定位置先向右,再向下,再向左,再向上就行了。注意用step变量控制在该方向上遍历的数目。

代码

class Solution: def add(self,res,R,C,x,y): if(x<0 or x>=R or y<0 or y>=C): return res.append([x,y]) def spiralMatrixIII(self, R: int, C: int, r0: int, c0: int) -> List[List[int]]: res=[] step=1 while(len(res)

参考文献

​​【中规中矩】两种解法​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:[leetcode] 1268. Search Suggestions System
下一篇:营销最前线:一家味精工厂,卡住了全世界芯片企业!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~