3248.矩阵中的蛇
【LetMeFly】3248.矩阵中的蛇:模拟
力扣题目链接:https://leetcode.cn/problems/snake-in-matrix/
大小为 n x n 的矩阵 grid 中有一条蛇。蛇可以朝 四个可能的方向 移动。矩阵中的每个单元格都使用位置进行标识: grid[i][j] = (i * n) + j。
蛇从单元格 0 开始,并遵循一系列命令移动。
给你一个整数 n 表示 grid 的大小,另给你一个字符串数组 commands,其中包括 "UP"、"RIGHT"、"DOWN" 和 "LEFT"。题目测评数据保证蛇在整个移动过程中将始终位于 grid 边界内。
返回执行 commands 后蛇所停留的最终单元格的位置。
示例 1:
输入:n = 2, commands = ["RIGHT","DOWN"]
输出:3
解释:
| 0 | 1 |
| 2 | 3 |
| 0 | 1 |
| 2 | 3 |
| 0 | 1 |
| 2 | 3 |
示例 2:
输入:n = 3, commands = ["DOWN","RIGHT","UP"]
输出:1
解释:
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
| 0 | 1 | 2 |
| 3 | 4 | 5 |
| 6 | 7 | 8 |
提示:
2 <= n <= 101 <= commands.length <= 100commands仅由"UP"、"RIGHT"、"DOWN"和"LEFT"组成。- 生成的测评数据确保蛇不会移动到矩阵的边界外。
解题方法:模拟
依次遍历指令字符串,依据每个指令的第一个字符判断移动方向:
- 向上移动:
坐标 -= n - 向下移动:
坐标 += n - 向左移动:
坐标 -= 1 - 向右移动:
坐标 += 1
初始值坐标为0,移动结束后的坐标即为所求。
- 时间复杂度$O(len(commands))$
- 空间复杂度$O(1)$
AC代码
C++
1 | |
Python
1 | |
Java
1 | |
Go
1 | |
同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~
Tisfy:https://letmefly.blog.csdn.net/article/details/143957408
3248.矩阵中的蛇
https://blog.letmefly.xyz/2024/11/21/LeetCode 3248.矩阵中的蛇/