当前位置:   article > 正文

华为OD机试统一考试D卷C卷 - 跳格子3(C++ Java JavaScript Python C语言)_华为od机试d卷真题

华为od机试d卷真题

华为OD机考:OD统一考试D卷+C卷+A卷+B卷+刷题OJ

真题目录:真题目录(D卷 + C卷 + B卷 + A卷) + 考点说明
必刷专栏:最新2024华为OD机试(Java/JS/Py/C/C++)+ OJ
在线OJ :点击立即刷题,模拟真实机考环境
华为OD面试真题精选:华为OD面试真题精选

题目描述

小明和朋友们一起玩跳格子游戏,每个格子上有特定的分数 score = [1, -1, -6, 7, -17, 7],

从起点score[0]开始,每次最大的步长为k,请你返回小明跳到终点 score[n-1] 时,能得到的最大得分。

输入描述

第一行输入总的格子数量 n

第二行输入每个格子的分数 score[i]

第三行输入最大跳的步长 k

输出描述

输出最大得分

备注

  • 格子的总长度 n 和步长 k 的区间在 [1, 100000]

  • 每个格子的分数 score[i] 在 [-10000, 10000] 区间中

用例

输入

6
1 -1 -6 7 -17 7
2
  • 1
  • 2
  • 3

输出

14
  • 1

解题思路

在给定的跳格子游戏中,我们使用动态规划方法来计算每个格子可能达到的最大得分。动态规划的核心在于解决子问题并利用这些子问题的解来解决整个问题。

动态规划公式

dp[i] 表示到达第 i 个格子时能得到的最大分数,则 dp[i] 可以通过以下方式计算:

dp[i] = max(dp[j]) + score[i] for j in range(max(0, i-k), i)
  • 1

这里,max(0, i-k)i-1 表示从当前位置 i 往回看,最远可以从 i-k 跳到 i。如果

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/806172
推荐阅读
相关标签
  

闽ICP备14008679号