跳方格游戏

问题描述:
小米公司在中秋节会有玩游戏领奖品的团队活动,增加部门凝聚力,其中今年中秋有一个游戏是这样的: 由游戏组织者在地上画一列竖排的方格,其中每个单独的方格上都标注着一个非负整数,一开始你位于方格的起始位置,每一个方格的数字代 表你从该位置开始可以跳跃的最大方格数。你的目标是需要用最少的跳跃次数来达到最后一个方格。最少跳跃次数的同学可以赢得中秋小礼 品。 
其中一列的方格对应使用非负整数列表表示;起始位置为数组下标0的位置;假设你总是可以跳到数组的最后一个位置。 
 
输入描述: 
1
非负整数列表nums(1 <= nums.length <= 10^4, 0 <= nums[i] <= 1000),表示对应方格数字 
输出描述:
 
1
跳到最后一个方格的最小跳跃次数 
 
输入样例: 
 
1
[3, 2, 5, 4, 7] 
输出样例: 
 
1
 



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

posted @   老运维  阅读(841)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示