寻找我们可以在 Python 跳跃游戏中获得的最高分数的程序
假设我们有一个名为nums的数组和另一个值k。我们在索引0处。在一次移动中,我们最多可以向右跳k步,而不会超出数组的边界。我们想要到达数组的最终索引。对于跳跃,我们得到分数,即我们在数组中访问的每个索引j的所有nums[j]的总和。我们必须找到我们能得到的最高分。
所以,如果输入像nums=[1,-2,-5,7,-6,4]k=2,那么输出将是10,因为,我们按照这个序列[1,-2,7,4],那么我们将得到最大点,即10。
示例
让我们看看以下实现以获得更好的理解-
def solve(nums, k):
n = len(nums)
scores = [0] * n
scores[0] = nums[0]
currMax = scores[0]
max_pt = 0
if n < 1:
return 0
if n == 1:
return nums[-1]
for idx in range(1,n):
if max_pt >= idx - k:
if currMax < scores[idx-1] and idx > 0:
currMax = scores[idx-1]
max_pt = idx-1
else:
if idx - k > 0:
currMax = scores[idx-k]
max_pt = idx - k
for p in range(idx-k, idx):
if scores[p] >= currMax:
max_pt = p
currMax = scores[p]
scores[idx] = currMax + nums[idx]
scores[-1] = currMax + nums[-1]
return scores[-1]
nums = [1,-2,-5,7,-6,4]
k = 2
print(solve(nums, k))输入
[1,-2,-5,7,-6,4], 2输出结果
10
热门推荐
10 读书祝福语女生短句简短
11 感谢同事新婚祝福语简短
12 感谢教官文案祝福语简短
13 员工聚会蛋糕祝福语简短
14 元宵发客户祝福语简短
15 给团队信心祝福语简短
16 医美的祝福语大全简短
17 异国姻缘的祝福语简短
18 兄妹拍照祝福语简短的话