题目描述
小明和朋友玩跳格子游戏,有 n 个连续格子组成的圆圈,每个格子有不同的分数,小朋友可以选择以任意格子起跳,但是不能跳连续的格子,不能回头跳,也不能超过一圈;给定一个代表每个格子得分的非负整数数组,计算能够得到的最高分数。
输入描述
给定一个数例,第一个格子和最后一个格子首尾相连,如: 2 3 2
输出描述
输出能够得到的最高分,如: 3
题意:
1.不能跳连续的格子, 但是可以跳隔了多个的格子。比如 4 1 2 7 2 , 跳 4 2 2 得8分, 跳 4 7 得11分 !!!
2.首尾不能都跳,将序列分为两组, 一组包含第一个元素但不包含最后一个元素;另一组不包含第一个元素但包含最后一个元素。分别进行推导,取两者的最大值
import java.util.*;
//跳格子2
/**
dp[]数组含义: 表示 最多跳到当前格子的最高分数 (可以不跳到当前格子)。
递推公式:
dp[i] =Math.max(dp[i-1], dp[i-2]+nums.get(i)); 表示 不跳当前格子即 最多跳到前一个格子的最高分数, 比较 i-2格子的最高分数+当前格子的分数
*/
public class Main{
// 通用 split 函数,空格切分
public static List<Integer> split(String input) {
List<Integer> res = new ArrayList<>

最低0.47元/天 解锁文章
2912

被折叠的 条评论
为什么被折叠?



