LeetCode 1176. 健身计划评估(滑动窗口)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1176. 健身计划评估(滑动窗口)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
你的好友是一位健身愛好者。前段日子,他給自己制定了一份健身計劃。現在想請你幫他評估一下這份計劃是否合理。
他會有一份計劃消耗的卡路里表,其中 calories[i] 給出了你的這位好友在第 i 天需要消耗的卡路里總量。
為了更好地評估這份計劃,對于卡路里表中的每一天,你都需要計算他 「這一天以及之后的連續幾天」 (共 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^5 0 <= calories[i] <= 20000 0 <= lower <= upper來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/diet-plan-performance
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
class Solution { public:int dietPlanPerformance(vector<int>& calories, int k, int lower, int upper) {int sum = 0, i = 0, j = 0, n = calories.size(), points = 0;while(j < k-1)sum += calories[j++];while(j < n){sum += calories[j++];if(sum < lower)points--;else if(sum > upper)points++;sum -= calories[i++];}return points;} };64 ms 22.1 MB
長按或掃碼關注我的公眾號,一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 1176. 健身计划评估(滑动窗口)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 545. 二叉树的边界
- 下一篇: LeetCode 1325. 删除给定值