当前位置:网站首页>[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
- Lua wechat avatar URL
- The difference between heap and stack
- Common technologies of unity
- Cocos2dx Lua registers the touch event and detects whether the click coordinates are within the specified area
- Research and forecast report on China's solution polymerized styrene butadiene rubber (SSBR) industry (2022 Edition)
- BUUCTF MISC
- This article is good
- Research on the value of background repeat of background tiling
- Heap sort summary
猜你喜欢
Unity3d learning notes
Unity check whether the two objects have obstacles by ray
Grail layout and double wing layout
Ue4/ue5 illusory engine, material chapter, texture, compression and memory compression and memory
一个新的微型ORM开源框架
54. Spiral matrix & 59 Spiral matrix II ●●
嵌入式数据库开发编程(六)——C API
嵌入式数据库开发编程(五)——DQL
PostgreSQL surpasses mysql, and the salary of "the best programming language in the world" is low
Research on the value of background repeat of background tiling
随机推荐
MD5 bypass
Unity3d learning notes
[turn]: OSGi specification in simple terms
Unity card flipping effect
C4D simple cloth (version above R21)
Merge sort
【Leetcode】1352. Product of the last K numbers
cocos2dx_ Lua particle system
xftp7与xshell7下载(官网)
Panel panel of UI
Research on the value of background repeat of background tiling
Applet live + e-commerce, if you want to be a new retail e-commerce, use it!
Es module and commonjs learning notes
Unity and database
Cocos create Jiugongge pictures
Programmers' experience of delivering takeout
How to choose a panoramic camera that suits you?
小程序直播+電商,想做新零售電商就用它吧!
Lua wechat avatar URL
The next key of win generates the timestamp file of the current day