方向数组的应用
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.lengthn == matrix[i].length1 <= 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 <= 1001 <= num <= 10<sup>5</sup>move,getPos和getDir**总共 **调用次数不超过10<sup>4</sup>次。
Solution
1 | class Robot { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 笑枕晚风の小站!
评论







