当前位置:网站首页>[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);
}
};
边栏推荐
- FVP和Juno平台的Memory Layout介绍
- 2022 / 7 / 1 Résumé de l'étude
- Unity shot tracking object
- Programmers' experience of delivering takeout
- Cocos create Jiugongge pictures
- Embedded database development programming (zero)
- This article is good
- cocos2dx_ Lua card flip
- Research on the value of background repeat of background tiling
- PMP考生,请查收7月PMP考试注意事项
猜你喜欢

Count sort

Do a small pressure test with JMeter tool

Applet live + e-commerce, if you want to be a new retail e-commerce, use it!

GBase数据库助力湾区数字金融发展

LeetCode之單詞搜索(回溯法求解)

Applet Live + e - commerce, si vous voulez être un nouveau e - commerce de détail, utilisez - le!

Research on the value of background repeat of background tiling

一个新的微型ORM开源框架

How to choose a panoramic camera that suits you?

Unity ugui source code graphic
随机推荐
The next key of win generates the timestamp file of the current day
Quick sort summary
MySQL audit log Archive
LeetCode之单词搜索(回溯法求解)
win下一键生成当日的时间戳文件
cocos_ Lua loads the file generated by bmfont fnt
嵌入式数据库开发编程(零)
Insert sort
cocos_ Lua listview loads too much data
SDEI初探-透过事务看本质
3dsmax snaps to frozen objects
3dsmax common commands
When will Wei Lai, who has been watched by public opinion, start to "build high-rise buildings" again?
UE 虚幻引擎,项目结构
Embedded database development programming (zero)
669. Prune binary search tree ●●
Establish cloth effect in 10 seconds
China polyurethane rigid foam Market Research and investment forecast report (2022 Edition)
Research on the value of background repeat of background tiling
Dotween usage records ----- appendinterval, appendcallback