跳方格游戏
问题描述:
小米公司在中秋节会有玩游戏领奖品的团队活动,增加部门凝聚力,其中今年中秋有一个游戏是这样的: 由游戏组织者在地上画一列竖排的方格,其中每个单独的方格上都标注着一个非负整数,一开始你位于方格的起始位置,每一个方格的数字代 表你从该位置开始可以跳跃的最大方格数。你的目标是需要用最少的跳跃次数来达到最后一个方格。最少跳跃次数的同学可以赢得中秋小礼 品。
其中一列的方格对应使用非负整数列表表示;起始位置为数组下标0的位置;假设你总是可以跳到数组的最后一个位置。
输入描述:
1
|
非负整数列表nums(1 <= nums.length <= 10^4, 0 <= nums[i] <= 1000),表示对应方格数字 |
输出描述:
1
|
跳到最后一个方格的最小跳跃次数 |
输入样例:
1
|
[3, 2, 5, 4, 7] |
输出样例:
1
|
2 |
class Solution:
def jump(self,nums):
n = len(nums)
maxPos, end, step = 0, 0, 0
for i in range(n - 1):
if maxPos >= i:
maxPos = max(maxPos, i + nums[i])
if i == end:
end = maxPos
step += 1
return step
if __name__ == '__main__':
nums = input()
nums_str_list = nums.replace("[", "").replace("]", "").split(",")
nums_list = list(map(int, nums_str_list))
solution = Solution()
print(nums_list)
step = solution.jump(nums_list)
print(step)
[1,1,1,1,1,1]
[1, 1, 1, 1, 1, 1]
maxPos:1 end: 1 step: 1
maxPos:2 end: 2 step: 2
maxPos:3 end: 3 step: 3
maxPos:4 end: 4 step: 4
maxPos:5 end: 5 step: 5
5
进程已结束,退出代码为 0
[3, 2, 5, 4, 7]
[3, 2, 5, 4, 7]
maxPos:3 end: 3 step: 1
maxPos:3 end: 3 step: 1
maxPos:7 end: 3 step: 1
maxPos:7 end: 7 step: 2
2
进程已结束,退出代码为 0
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】