目录
题目
小明和朋友们一起玩跳格子游戏,每个格子上有特定的分数score = [1 -1-6 7 -17 7],从起点score[0]开始,每次最大的步长为k,请你返回小明跳到终点score[n-1]时,能得到的最大得分。
注
格子的总长度和步长的区间在[1,100000]
每个格了的分数在[-10000,10000]区间中
输入描述
6//第一行输入总的格了数量
1 -1 -6 7 -17 7/第二行输入每个格子的分数score[i]
2//第三行输入最大跳的步长k输出描述:
一个整数代表最大得分。
示例1:
输入:
6
1 -1 -6 7 -17 7
2
输出:14
思路
1:这题还是一个很久没考到过的动态规划类的题目。
2:其实状态转移方程还是比较好推导的cache[i] = max(cache[i-k] ~cache[i-1]) + score[i],有一个优化的点就是我们可以用一个队列来保存其中cache[i-k]~cache[i-1]的最大值。