题解 | #跳跃游戏(一)# Python3

跳跃游戏(一)

https://www.nowcoder.com/practice/07484f4377344d3590045a095910992b

import sys


# 方法一: O(NN),超时
# dp[i] = 能否跳到i
# dp[i] = (j从0~i-1, dp[j]==1 & nums[j]>= (i-j))

n = int(input())
nums = list(map(int, input().strip().split()))

# dp = [False] * (n)
# dp[0] = True



# for i in range(1,n):
#     for j in range(i):
#         if dp[j] and nums[j] >= (i-j):
#             dp[i] = True
#             break

# print('true' if dp[-1] else 'false')

# 方法二, dp[i]为在i还能跳往后到达多少格,
# 如何dp[i]==0,说明无法再向后跳了
# dp[i] = max(dp[i-1]-1,nums[i])
# dp[i]
dp = [0] * (n+1)
flag = True
for i in range(1,n+1):
    dp[i] = max(dp[i-1]-1, nums[i-1])
    if dp[i] == 0 and i!=n: # 最后一个不需要往后跳,已经到达
        flag = False
        break
print('true' if flag else 'false')

# 方法三,注意,如果能到达i,一定能到达i-1
# 因此,可以采用贪心策略,从后往前遍历数组,迭代看当前位置+值能否到达目的位置,可以的话,只需要到达当前位置
# 就可以到达最后的目的位置

全部评论

相关推荐

找到实习了 给了150一天 但是说是低代码 值得去吗
码农索隆:是在没实习,可去,待个一两周,不行就润呗
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务