当前位置:网站首页>[allocation problem] 135 Distribute candy
[allocation problem] 135 Distribute candy
2022-07-05 05:15:00 【lee2813】
One 、 subject
n Two kids in a row . Give you an array of integers ratings Indicates the score of each child .
You need to follow these requirements , Distribute candy to these children :
Each child is assigned at least 1 A candy .
Children with higher scores from two adjacent children will get more candy .
Please distribute candy to each child , Calculate and return what needs to be prepared Minimum number of sweets .
Example 1:
Input :ratings = [1,0,2]
Output :5
explain : You can give the first one separately 、 the second 、 The third child distributed 2、1、2 Candy .
Example 2:
Input :ratings = [1,2,2]
Output :4
explain : You can give the first one separately 、 the second 、 The third child distributed 1、2、1 Candy .
The third child only got 1 Candy , This satisfies two conditions in the problem surface .
Tips :
n == ratings.length
1 <= n <= 2 * 104
0 <= ratings[i] <= 2 * 104
Two 、 Answer key
Here with 455 equally , There are relatively greedy strategies , But there is no need to sort and select , Because the title here requires comparison with adjacent elements , So we can rely on two iterations to operate .
First , Because every child must have a candy , So we define a candy allocation array with a value of one .
Then traverse for the first time : Traversing from front to back , If the corresponding score of this position is larger than that of the previous position , Then the candy allocation array value of this position is the candy allocation array value of the previous position plus one . Second traversal : Go back and forth , If the corresponding score of this position is larger than that of the next position , Then the array value of candy allocation in this position should also be the array value of candy allocation in the next position plus one , However, after the first traversal, the candy allocation value at this position may be greater than that at the previous position . At this time, it meets the requirements of the topic , No operation . So we should compare these two situations , Taking the maximum . Until the traversal is complete .
Last , Sum the values of the candy allocation array , Get the total number of sweets that need to be distributed at least .
3、 ... and 、 Code
class Solution {
public:
int candy(vector<int>& ratings) {
int n=ratings.size();
vector<int> nums(n,1);
for(int i=1;i<n;i++){
if(ratings[i]>ratings[i-1]) nums[i]=nums[i-1]+1;
}
for(int j=n-1;j>0;j--){
if(ratings[j-1]>ratings[j]&&nums[j-1]<=nums[j])
nums[j-1]=max(nums[j]+1,nums[j-1]);
}
return accumulate(nums.begin(),nums.end(),0);
}
};
边栏推荐
- 被舆论盯上的蔚来,何时再次“起高楼”?
- Sqlserver stored procedures pass array parameters
- Optimization scheme of win10 virtual machine cluster
- 64 horses, 8 tracks, how many times does it take to find the fastest 4 horses at least
- Vs2015 secret key
- Grail layout and double wing layout
- [turn to] MySQL operation practice (I): Keywords & functions
- Judge the position of the monster in the role under unity3d
- Dotween usage records ----- appendinterval, appendcallback
- Es module and commonjs learning notes -- ESM and CJS used in nodejs
猜你喜欢
随机推荐
Common database statements in unity
Simple modal box
使用命令符关闭笔记本自带键盘命令
54. Spiral matrix & 59 Spiral matrix II ●●
Unity synergy
2022年上半年国家教师资格证考试
Forecast report on research and investment prospects of Chinese wormwood industry (2022 Edition)
Bubble sort summary
C iterator
Applet Live + e - commerce, si vous voulez être un nouveau e - commerce de détail, utilisez - le!
Count sort
cocos_ Lua listview loads too much data
2022/7/2做题总结
Lua determines whether the current time is the time of the day
Cocos create Jiugongge pictures
Merge sort
China as resin Market Research and investment forecast report (2022 Edition)
支持多模多态 GBase 8c数据库持续创新重磅升级
A three-dimensional button
Unity sends messages and blocks indecent words




![[轉]: OSGI規範 深入淺出](/img/54/d73a8d3e375dfe430c2eca39617b9c.png)




