日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

135. 分发糖果002(贪心算法+思路+详解)

發(fā)布時(shí)間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 135. 分发糖果002(贪心算法+思路+详解) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一:題目

老師想給孩子們分發(fā)糖果,有 N 個(gè)孩子站成了一條直線,老師會(huì)根據(jù)每個(gè)孩子的表現(xiàn),預(yù)先給他們?cè)u(píng)分。

你需要按照以下要求,幫助老師給這些孩子分發(fā)糖果:

每個(gè)孩子至少分配到 1 個(gè)糖果。
評(píng)分更高的孩子必須比他兩側(cè)的鄰位孩子獲得更多的糖果。
那么這樣下來,老師至少需要準(zhǔn)備多少顆糖果呢?

示例 1:

輸入:[1,0,2]
輸出:5
解釋:你可以分別給這三個(gè)孩子分發(fā) 2、1、2 顆糖果。
示例 2:

輸入:[1,2,2]
輸出:4
解釋:你可以分別給這三個(gè)孩子分發(fā) 1、2、1 顆糖果。
第三個(gè)孩子只得到 1 顆糖果,這已滿足上述兩個(gè)條件。

二:思路:

這里的思路是:局部最優(yōu),分為兩次遍歷 都是找最優(yōu)的結(jié)果
第一次遍歷:從左往右 右邊的評(píng)分比左邊的高則其糖果個(gè)數(shù)在左邊糖果個(gè)數(shù)的基礎(chǔ)上加一
第二次遍歷:從右往左 如果左邊的評(píng)分比右邊的高 且其個(gè)數(shù)不大于右邊的個(gè)數(shù) 則其糖果數(shù)在右邊糖果數(shù)的基礎(chǔ)上加一
解釋第二次遍歷:因?yàn)槲覀円蟊认噜彽脑u(píng)分低糖果數(shù)多就行,一種情況是他比兩邊都高
那么在第一次遍歷 加一 過后,到第二次就不用再加一了,故第二次遍歷
當(dāng)中的 且其個(gè)數(shù)。。。。,說的就是這個(gè)原因

三:上碼

class Solution { public:int candy(vector<int>& ratings) {//這里的思路是:局部最優(yōu),分為兩次遍歷 都是找最優(yōu)的結(jié)果//第一次遍歷:從左往右 右邊的評(píng)分比左邊的高則其糖果個(gè)數(shù)在左邊糖果個(gè)數(shù)的基礎(chǔ)上加// //一//第二次遍歷:從右往左 如果左邊的評(píng)分比右邊的高 且其個(gè)數(shù)不大于右邊的個(gè)數(shù) 則其糖 果數(shù)在右邊糖果數(shù)的基礎(chǔ)上加一//解釋第二次遍歷:因?yàn)槲覀円蟊认噜彽脑u(píng)分低糖果數(shù)多就行,一種情況是他比兩邊都高// 那么在第一次遍歷 加一 過后,到第二次就不用再加一了,故第二次遍歷// 當(dāng)中的 且其個(gè)數(shù)。。。。,說的就是這個(gè)原因map<int,int>m;map<int,int>:: iterator mt;for(int i = 0; i < ratings.size(); i++){m[i] = 1;}//從左往右邊for(int i = 0; i < ratings.size() - 1; i++){if(ratings[i] < ratings[i+1]){m[i+1] = m[i] + 1;}} //從右往左for(int i = ratings.size() - 1;i > 0; i--){if(ratings[i-1] > ratings[i] && m[i-1] <= m[i]){m[i-1] = m[i] + 1;}} int sum = 0;for(mt = m.begin(); mt != m.end(); mt++){sum+=mt->second;} return sum; } };


加油 BOY!!!! 如有問題請(qǐng)留言!!

總結(jié)

以上是生活随笔為你收集整理的135. 分发糖果002(贪心算法+思路+详解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。