nums = list(map(int, input().split())) def f(nums): n = len(nums) dp = [-1] * n dp[0] = nums[0] dp[1] = nums[1] for i in range(2, n): dp[i] = max(dp[i - 1], max(dp[:i-1]) + nums[i]) return max(dp) if len(nums) == 1: print(nums[0]) elif len(nums) == 2: print(max(nums[0], nums[1])) else: ans1 = f(nums[:-1]) ans2 = f(nums[1:]) print(max(ans1, ans2))
题目描述:
小明和朋友玩跳格子游戏, 有 n 个连续格子组成的圆圈,每个格子有不同的分数,小朋友可以选择从任意格子起跳,但是不能跳连续的格子,不能回头跳,也不能超过一圈 ;
给定一个代表每个格子得分的非负整数数组,计算能够得到的最高分数。
输入描述:
给定一个数例