矩阵中的蛇

本文最后更新于:2024年11月21日 下午

3248. 矩阵中的蛇

level: easy

tag:数组 字符串 模拟

大小为 n x n 的矩阵 grid 中有一条蛇。蛇可以朝 四个可能的方向 移动。矩阵中的每个单元格都使用位置进行标识: grid[i][j] = (i * n) + j。

蛇从单元格 0 开始,并遵循一系列命令移动。

给你一个整数 n 表示 grid 的大小,另给你一个字符串数组 commands,其中包括 “UP”、”RIGHT”、”DOWN” 和 “LEFT”。题目测评数据保证蛇在整个移动过程中将始终位于 grid 边界内。

返回执行 commands 后蛇所停留的最终单元格的位置。

示例 1:

1
2
3
输入:n = 2, commands = ["RIGHT","DOWN"]

输出:3

题解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function finalPositionOfSnake(n: number, commands: string[]): number {
let i = 0,
j = 0;
commands.map((cmd) => {
switch (cmd) {
case "DOWN":
++i;
break;
case "UP":
--i;
break;
case "LEFT":
--j;
break;
case "RIGHT":
++j;
}
});

return i * n + j;
}

思路:

初始化 i=j=0,按题意要求上下左右移动即可,注意题目保证不会出界。

最后返回 i⋅n+j。

复杂度

时间复杂度:O(m)

空间复杂度:O(1)


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!