leetcode 135. 分发糖果
生活随笔
收集整理的這篇文章主要介紹了
leetcode 135. 分发糖果
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
老師想給孩子們分發(fā)糖果,有 N 個(gè)孩子站成了一條直線,老師會(huì)根據(jù)每個(gè)孩子的表現(xiàn),預(yù)先給他們?cè)u(píng)分。
你需要按照以下要求,幫助老師給這些孩子分發(fā)糖果:
每個(gè)孩子至少分配到 1 個(gè)糖果。
相鄰的孩子中,評(píng)分高的孩子必須獲得更多的糖果。
那么這樣下來,老師至少需要準(zhǔn)備多少顆糖果呢?
示例 1:
輸入: [1,0,2]
輸出: 5
解釋: 你可以分別給這三個(gè)孩子分發(fā) 2、1、2 顆糖果。
代碼
class Solution {public int candy(int[] ratings) {int n=ratings.length;int[] cnt=new int[n];Arrays.fill(cnt,1);//所有人都發(fā)一顆boolean change=true;while (change)//直到每個(gè)孩子的糖果數(shù)量不再需要調(diào)整{change=false;for(int i=0;i<n;i++){if(i-1>=0&&ratings[i]>ratings[i-1]&&cnt[i]<=cnt[i-1])//檢查左邊孩子的分?jǐn)?shù)和糖數(shù)是否符合要求,調(diào)整當(dāng)前孩子的糖果數(shù)量,使得滿足要求{change=true;cnt[i]=cnt[i-1]+1;}if(i+1<n&&ratings[i]>ratings[i+1]&&cnt[i]<=cnt[i+1])//檢查右邊孩子的分?jǐn)?shù)和糖數(shù)是否符合要求,調(diào)整當(dāng)前孩子的糖果數(shù)量,使得滿足要求{change=true;cnt[i]=cnt[i+1]+1;}}}int res=0;for(int i=0;i<n;i++)res+=cnt[i];return res;} }總結(jié)
以上是生活随笔為你收集整理的leetcode 135. 分发糖果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 周公解梦梦到丢钱是什么意思
- 下一篇: leetcode 455. 分发饼干(贪