方向数组的应用
54. 螺旋矩阵
Difficulty: 中等
给你一个 m
行 n
列的矩阵 matrix
,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。
示例 1:
1 | 输入:matrix = [[1,2,3],[4,5,6],[7,8,9]] |
示例 2:
1 | 输入:matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]] |
提示:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 10
-100 <= matrix[i][j] <= 100
Solution
1 | class Solution { |
59. 螺旋矩阵 II
Difficulty: 中等
给你一个正整数 n
,生成一个包含 1
到 n<sup>2</sup>
所有元素,且元素按顺时针顺序螺旋排列的 n x n
正方形矩阵 matrix
。
示例 1:
1 | 输入:n = 3 |
示例 2:
1 | 输入:n = 1 |
提示:
1 <= n <= 20
Solution
1 | class Solution { |
5911. 模拟行走机器人 II
Difficulty: 中等
给你一个在 XY 平面上的 width x height
的网格图,左下角 的格子为 (0, 0)
,右上角 的格子为 (width - 1, height - 1)
。网格图中相邻格子为四个基本方向之一("North"
,"East"
,"South"
和 "West"
)。一个机器人 初始 在格子 (0, 0)
,方向为 "East"
。
机器人可以根据指令移动指定的 步数 。每一步,它可以执行以下操作。
- 沿着当前方向尝试 往前一步 。
- 如果机器人下一步将到达的格子 超出了边界 ,机器人会 逆时针 转 90 度,然后再尝试往前一步。
如果机器人完成了指令要求的移动步数,它将停止移动并等待下一个指令。
请你实现 Robot
类:
Robot(int width, int height)
初始化一个width x height
的网格图,机器人初始在(0, 0)
,方向朝"East"
。void move(int num)
给机器人下达前进num
步的指令。int[] getPos()
返回机器人当前所处的格子位置,用一个长度为 2 的数组[x, y]
表示。String getDir()
返回当前机器人的朝向,为"North"
,"East"
,"South"
或者"West"
。
示例 1:
1 | 输入: |
提示:
2 <= width, height <= 100
1 <= num <= 10<sup>5</sup>
move
,getPos
和getDir
**总共 **调用次数不超过10<sup>4</sup>
次。
Solution
1 | class Robot { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 笑枕晚风の小站!
评论