生活随笔
收集整理的這篇文章主要介紹了
LeetCode 135 分发糖果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目描述
老師想給孩子們分發糖果,有 N 個孩子站成了一條直線,老師會根據每個孩子的表現,預先
給他們評分。你需要按照以下要求,幫助老師給這些孩子分發糖果:每個孩子至少分配到 1 個糖果。
相鄰的孩子中,評分高的孩子必須獲得更多的糖果。
那么這樣下來,老師至少需要準備多少顆糖果呢
題解
使用貪心的方法,可參考該鏈接:
https://leetcode-cn.com/problems/candy/solution/candy-cong-zuo-zhi-you-cong-you-zhi-zuo-qu-zui-da-/
代碼
class Solution {
public:int candy(vector<int>& ratings) {int n=ratings.size();if (!n) return 0;vector<int> candyNum(n,1);for (int i=1;i<n;i++){if (ratings[i]>ratings[i-1]) candyNum[i]=candyNum[i-1]+1;}int sum=0;for (int i=n-2;i>=0;i--){if (ratings[i]>ratings[i+1]) candyNum[i]=max(candyNum[i],candyNum[i+1]+1); // 取最大值sum+=candyNum[i];}return sum+candyNum[n-1];}
};
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!
總結
以上是生活随笔為你收集整理的LeetCode 135 分发糖果的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。