【candy】
来源:互联网 发布:medline数据库网址 编辑:程序博客网 时间:2024/06/03 01:41
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?
题意:N个孩子站成一排,每个孩子分配一个分值,给这些孩子派发糖果,
满足如下:
每个孩子至少一个,分值更高的孩子比他的相邻位的孩子获得更多的糖果
求至少分发多少个糖果?
思路:
从左到右遍历,保证该方向上分数更大的获得的糖果更多;
从右到左遍历,保证这个方向上分数更大的获得的糖果跟多;
class Solution{public:int candy(vector<int>& ratings){int len = ratings.size();if (len==1){return 1;}int sum = 0;vector<int> tmpVec(len, 1); //初始化每个孩子的糖果数设置为1//从左扫描for (int i=1; i<len; i++){if (ratings[i]>ratings[i-1]){tmpVec[i] = tmpVec[i - 1] + 1;}}//从右向左for (int i=len-2; i>=0; i--){if (ratings[i]>ratings[i + 1] && tmpVec[i] <= tmpVec[i + 1]){tmpVec[i] = tmpVec[i + 1] + 1;}}for (int i=0; i<len; i++){sum += tmpVec[i];}return sum;}};
阅读全文
0 0
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- Candy
- candy
- Candy
- Candy
- Candy
- Candy
- ZooKeeper_6_Java操作ZK_删除节点
- 初识字符串类型
- iOS开发:XCTest单元测试(附上一个单例的测试代码)
- Unity入门学习 //06_游戏构建导出以及设置,生成.exe文件
- 面试技巧,如何通过索引说数据库优化能力,内容来自Java web轻量级开发面试教程
- 【candy】
- java编程思想-注解
- __call和__callStatic
- 分布式系统原理介绍读书笔记
- JPEG解码原理详解
- java 实现堆排序
- delphi调用阿里云的对象存储服务OSS
- MyBatis学习笔记:基于xml和注解对表的基本操作
- Python 2与Python 3的区别