博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode-135-Candy
阅读量:6504 次
发布时间:2019-06-24

本文共 1338 字,大约阅读时间需要 4 分钟。

算法描述:

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?

Example 1:

Input: [1,0,2]Output: 5Explanation: You can allocate to the first, second and third child with 2, 1, 2 candies respectively.

Example 2:

Input: [1,2,2]Output: 4Explanation: You can allocate to the first, second and third child with 1, 2, 1 candies respectively.             The third child gets 1 candy because it satisfies the above two conditions.

解题思路:先从左往右扫,遇到当前小孩rating值大于前一个小孩rating值,则给该小孩分的糖置为前一个小孩糖果数加一。然后从右往左扫,遇到当前小孩rating值小于后面小孩的rating值,该小孩的糖果数为当前分配的糖果数和后面小孩分配的糖果数加一两者之中的最大值。

int candy(vector
& ratings) { int sum =0; vector
count(ratings.size(), 1); for(int i=1; i < ratings.size(); i++){ if(ratings[i] > ratings[i-1]) count[i]=count[i-1]+1; } for(int i=ratings.size()-2; i >=0; i--){ if(ratings[i] > ratings[i+1]) count[i] = max(count[i],count[i+1]+1); } for(int i=0; i < ratings.size(); i++) sum += count[i]; return sum; }

 

转载于:https://www.cnblogs.com/nobodywang/p/10392534.html

你可能感兴趣的文章
ThinkPHP 框架学习
查看>>
css3箭头效果
查看>>
MathType在手,公式不求人!
查看>>
测试用例设计
查看>>
三层架构
查看>>
Python变量类型(l整型,长整形,浮点型,复数,列表,元组,字典)学习
查看>>
解决方案(.sln)文件
查看>>
【Treap】bzoj1588-HNOI2002营业额统计
查看>>
第六周作业
查看>>
利用ZYNQ SOC快速打开算法验证通路(5)——system generator算法IP导入IP integrator
查看>>
指针和引用的区别
查看>>
运行PHP出现No input file specified错误解决办法
查看>>
【重建】从FJOI2016一试谈起
查看>>
selenium之frame操作
查看>>
php 引入其他文件中的变量
查看>>
MYSQL体系结构-来自期刊
查看>>
mysql的基本知识
查看>>
webpack入门(二)what is webpack
查看>>
UnitOfWork以及其在ABP中的应用
查看>>
学习C语言必须知道的理论知识(第一章)
查看>>