
你的好友是一位健身爱好者。前段日子他给自己制定了一份健身计划。现在想请你帮他评估一下这份计划是否合理。他会有一份计划消耗的卡路里表其中calories[i]给出了你的这位好友在第i天需要消耗的卡路里总量。一份计划的周期通常是k天你需要计算他在这k天内消耗的总卡路里T如果T lower那么这份计划相对糟糕并失去 1 分如果T upper那么这份计划相对优秀并获得 1 分否则这份计划普普通通分值不做变动。请返回统计完所有calories.length天后得到的总分作为评估结果。注意总分可能是负数。示例 1输入calories [1,2,3,4,5], k 1, lower 3, upper 3 输出0 解释calories[0], calories[1] lower 而 calories[3], calories[4] upper, 总分 0.示例 2输入calories [3,2], k 2, lower 0, upper 1 输出1 解释calories[0] calories[1] upper, 总分 1.示例 3输入calories [6,5,0,0], k 2, lower 1, upper 5 输出0 解释calories[0] calories[1] upper, calories[2] calories[3] lower, 总分 0.提示1 k calories.length 10^50 calories[i] 200000 lower upper思路题目描述的不清楚题意里的长度为k的周期是指每一个长度为k 的周期比如对于示例3所有的周期为[6, 5], [5, 0], [0, 0]。只需要找到所有的周期和再将周期和与lower upper 对比即可。class Solution(object): def dietPlanPerformance(self, calories, k, lower, upper): :type calories: List[int] :type k: int :type lower: int :type upper: int :rtype: int res 0 s sum(calories[: k]) for start in range(0, len(calories) - (k - 1)): if start ! 0: s calories[start k - 1] - calories[start - 1] if s lower: res - 1 elif s upper: res 1 return res