Candy
来源:互联网 发布:手机视频制作软件 编辑:程序博客网 时间:2024/06/07 02:44
There are N children standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requirements:
- Each child must have at least one candy.
- Children with a higher rating get more candies than their neighbors.
What is the minimum candies you must give?
看网上才做出来的,自己想的方法太复杂,网上大家做法基本一样,先从左往右处理左邻居的关系,再从右往左处理右邻居的关系
class Solution {public: int candy(vector<int> &ratings) { vector<int> candies(ratings.size(),1); for(size_t i=1;i<ratings.size();++i){ if(ratings[i] > ratings[i-1]) candies[i]=candies[i-1]+1; } for(int i=ratings.size()-1;i>=0;--i){ if(i-1 >= 0 ) { if(ratings[i-1] > ratings[i]){ candies[i-1] =max(candies[i]+1,candies[i-1]); } } } int sum = 0; for(size_t i=0;i<candies.size();++i){ sum+=candies[i]; } return sum; }};
0 0
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- candy
- Candy
- Candy
- Candy
- Candy
- springmvc在ajax请求出现406
- 3. Dubbo原理解析-Dubbo内核实现之动态编译
- R: 矩阵运算及常用函数 III - *apply Part I
- 一句话获取机器ip
- POJ 1654 Area 有向面积
- Candy
- python subprocess
- Android四大组件详解
- linux 下查看一个进程运行路径的方法
- J.U.C原子工具类AtomicXXX中,set和lazySet的区别
- 人见人爱A^B
- ARM PL330 DMA控制器开发(二)
- Redis关键点(rehash)<转>
- Qt 中界面间的执行调用QDialog::Accepted