本题考查模拟。跑道上每一步的步长由当前格子唯一确定:空地走 1 格,弹簧走 2 格,陷阱立即失败。因此不存在多条可选路径,只需从坐标 0 开始按规则推进,统计步数。
在一条长度为 n 的直线跑道上,每个格子的坐标从 0 到 n−1,每个格子上写着一个整数,存放在数组 tiles 中。这些数字有特殊含义:
你控制的角色从坐标 0 出发,目标是成功到达或越过终点坐标 n−1(即坐标 ≥n−1 即算通关)。
角色移动规则:默认情况下,角色每一步只能向右移动 1 格。如果角色踩到弹簧加速垫(1),那么下一步可以向右移动 2 格。如果角色踩到陷阱(−1),游戏结束。
给定一个整数数组 tiles,长度为 n,其中 1≤n≤10000。数组中的元素取值为 0、1 或 −1。
如果角色从坐标 0 出发能够成功通关(到达或越过坐标 n−1),返回通关所需的步数;否则返回 −1。
输入
[0,1,-1,0,0]
输出
3
说明
初始在坐标 0,当前格子是 0(普通空地)。
输入
[1,0,-1,0]
输出
-1
说明
执行过程:初始在坐标 0,当前格子是 1(弹簧垫)。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册