题目描述

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 个小孩,每个小孩有一个评分。给小孩发糖。要求:

    1)每个小孩至少一颗糖

    2)评分高的小孩发的糖比他旁边两个小孩的多

因此最少需要多少糖果才够分?

解题思路:

  遍历两边,首先每个人得一块糖,第一遍从左到右,若当前点比前一个点高就比前者多一块。

这样保证了在一个方向上满足了要求。第二遍从右往左,若左右两点,左侧高于右侧,但

左侧的糖果数不多于右侧,则左侧糖果数等于右侧糖果数+1,这就保证了另一个方向上满足要求。

  最后将各个位置的糖果数累加起来就可以了。

代码实现:

class Solution {
public:
int candy(vector<int> &ratings) {
int n=ratings.size();
//candy set
vector<int>Candy(n,);
//from left to right
for(int i();i<n-;i++){
if(ratings[i+]>ratings[i])
Candy[i+]=Candy[i]+;
}
//from right to left
for(int j=n-;j>;j--){
if(ratings[j-]>ratings[j]&&Candy[j-]<=Candy[j])
Candy[j-]=Candy[j]+;
}
//add all
int sum();
for(auto a:Candy)
sum+=a;
return sum;
}
};

最新文章

  1. zeptojs-跑马灯效果
  2. Xamarin.IOS之快速入门
  3. WordCount的程序设计没写出来怎么办
  4. 【caffe-windows】 caffe-master 之 matlab接口配置
  5. linq to entity 获取项的集合总数
  6. (29)odoo的可用小图标
  7. Cv运动分析与对象跟踪(转)
  8. 自己的php函数库
  9. c语言中static 用法总结(转)
  10. poj 2782 Bin Packing (贪心+二分)
  11. EF中的TPH、TPT、TPC
  12. Codeforces 482 - Diverse Permutation 构造题
  13. Endnote从头开始五:修改output style(转载)
  14. 一点一滴完全突破KAZE特征检测算法,从各向异性扩散滤波开始(1)
  15. angular 实战系列 之 mvvm模式
  16. XCode工程内多Targets
  17. PLSQL DEVELOPER编辑器的自动替换文件
  18. 二、tcp/ip基础知识
  19. 利用堆实现堆排序&amp;amp;优先队列
  20. 【iOS XMPP】使用XMPPFramewok(二):用户登录

热门文章

  1. day-3 python多线程编程知识点汇总
  2. 策略模式(Stratety)
  3. Linux - IDA - 安装 ( 带F5功能 )
  4. DNS搜索过程
  5. Mego开发文档 - 加载关系数据
  6. 新概念英语(1-29)Come in, Amy.
  7. 详解Ajax请求(一)前言——同步请求的原理
  8. 详解get请求和post请求参数中文乱码的解决办法
  9. java设计模式—— 工厂模式
  10. Maven的作用是什么