# 小明和朋友玩跳格子游戏,有n个连续格子组成的圆圈,每个格子有不同的分数, # 小朋友可以选择从任意格子起跳,但是不能跳连续的格子,不能回头跳,也不能超过一圈 # 给定一个代表每个格子得分的非负整数数组,计算能够得到的最高分数 # # 输入:给定一个数例,第一个格子和最后一个格子收尾相连,如2 3 2 # 输出:输出能够得到的最高分,如3 # # 输入:2 3 2 # 输出:3 # # 输入: 1 2 3 1 # 输出 4 #1+3 =4 def get_score(nums): dp = [0] * len(nums) dp[0] = nums[0] for i in range(1, len(nums)): dp[i] = max(dp[i-2]+nums[i], dp[i-1]) return max(dp) def get_max_score(nums): if len(nums)==1: return 0 # case 1 考虑第一个 score1 = get_score(nums[:-1]) # case 2 考虑最后一个 score2 = get_score(nums[1:]) return max(score1,score2) nums = list(map(int,input().split(' '))) print(get_max_score(nums))
44.跳格子2--OD
于 2024-04-01 22:38:03 首次发布